Python求包含數字或字母最長的字串及長度

2022-08-26 02:48:08 字數 2901 閱讀 3148

一、求包含數字或字母最長的字串及長度

org = '

ss121*2222&sdfs2!aaabb

'result = #

儲存最終要輸出的字串

result_temp = #

儲存當前最長的字串

max_len = 0 #

儲存最長字串的長度

for c in org + '

': #

多加一次迴圈,為了最後多執行一次else; 否則若字串末尾滿足條件,將不會儲存到result中

if c.isalnum(): #

若c為數字或字母,則加入result_temp中

else: #

直到遇到乙個非數字和字母時,判斷當前result_temp的長度

len_temp =len(result_temp)

if len_temp > max_len: #

若大於當前最大長度,則清空result,把該字串加入reseult中

max_len =len_temp

result.clear()

''.join(result_temp))

elif len_temp == max_len: #

若等於當前最大長度,說明存在兩個長度一樣的字串,直接把該字串加入result中

.join(result_temp))

result_temp = #

遇到非數字和字母時,清空result_temp,繼續下一次遍歷

if len(result) ==0:

print('

沒有符合標準的字串')

else

:

print('

符合要求的最長字串的長度為:

', max_len)

print('

符合要求的最長字串有:

', result)

二、求包含數字和字母最長的字串及長度

org = '

ss121*2222&sdfs2!aaabb

'result = #

儲存最終要輸出的字串

result_temp = #

儲存當前最長的字串

max_len = 0 #

儲存最長字串的長度

for c in org+'':

if c.isalnum(): #

若字元是字母或者數字,則儲存

else

: len_temp =len(result_temp)

result_temp_str = ''

.join(result_temp)

ifnot result_temp_str.isalpha() and

not result_temp_str.isdigit(): #

若字串不全為字母或全為數字,則該字串一定同時包含字母和數字

if len_temp >max_len:

max_len =len_temp

result.clear()

elif len_temp ==max_len:

result_temp =

iflen(result):

print('

最長的字串為:

', result, '

長度為:

', max_len)

else

:

print('

沒有滿足要求的字串

')

三、另一種思路

1、現將字串中所有非數字和字母的特殊字元替換為統一的乙個特殊字元

2、將字串進行分割

3、用兩個list,分別儲存包含數字和字母的字串及其長度

4、遍歷儲存長度的list,提取值最大的下標,從而從儲存字串的list中取出對應的字串

import

string

str1 = '

ss121*2222&sdfs2!aaabb

't = string.punctuation #

獲取所有的特殊字元

for c in str1: #

替換特殊字元

if c in

t: str1 = str1.replace(c, '.'

)list1 = str1.split('

.') #

分割字串

list2 = #

儲存所有包含字母和數字的字串

len_list2 = #

儲存字串對應的長度

for str2 in

list1:

ifnot str2.isdigit() and

not str2.isalpha() and len(str2.strip()) > 1:

max_len =max(len_list2)

max_len_count =len_list2.count(max_len)

result =

if max_len_count > 1: #

有多個長度相同的字串

for length in

range(len(len_list2)):

if len_list2[length] ==max_len:

elif max_len_count == 1:

result =list2[len_list2.index(max_len)]

else

:

print('

沒有滿足要求的字串')

exit(0)

print('

最長的字串為:

', result, '

長度為:

', max_len)

生成隨機字母或數字

生成隨機數字 生成長度 public static string number int length 生成隨機數字 生成長度 是否要在生成前將當前執行緒阻止以避免重複 public static string number int length,bool sleep return result 生成...

python 字母與數字

給定乙個放有字元和數字的陣列,找到最長的子陣列,且包含的字元和數字的個數相同。返回該子陣列,若存在多個最長子陣列,返回左端點最小的。若不存在這樣的陣列,返回乙個空陣列。示例 1 輸入 a 1 b c d 2 3 4 e 5 f g 6 7 h i j k l m 輸出 a 1 b c d 2 3 4...

字元c是否為字母或數字

isalnum int c 功能 判斷字元c是否為字母或數字 那麼 key bioskey 0 if isalnum key 0xff 首先這裡的變數key應該是int型別的,在32位機上int型有4個位元組,需要判斷的字元為乙個位元組。key 0xff的目的是把key代表的值的高位清0,即使前3個...