牛客網 字串的統計字串

2021-10-25 03:31:34 字數 1755 閱讀 2266

牛客網

題目描述:給定乙個字串str,返回str的統計字串。例如「aaabbbbcccd」的統計字串為「a_3_b_4_c_3_d_1」。

輸入字元長度都大於1

解題思路:

1.第一種方法輸入的是"aaa\n"這種字元。因此我們將當前字元cur指向首字元,從1- 字串長度的範圍內開始遍歷判斷當前字元cur是否與遍歷的字元n[i]相等,如果相等的話count+1記錄重複字元的數量。如果不等則記錄前邊重複字元+""+count+"",在不相等的時候還有一種情況就是當遍歷到字串最後一位的時候。後邊不加「_」.因為sys.stdin輸入的字串後面自帶乙個反斜槓n字元因此我們不需要再加其他語句就可以執行。

2.第二種方法輸入的是「aaa」這種標準輸入當執行第乙個程式輸出結果錯誤,因為一直執行 第乙個if語句。不能夠執行後面的else所以輸出為空。因此需要執行第二種方法。

3. 解釋的可能不是特別好,請擔待。

def

count_str

(n):

cur = n[0]

count =

1 new_str =

"" s =

0for i in

range(1

,len

(n))

:if n[i]

== cur:

count +=

1else

:if i ==

len(n)-1

: new_str =new_str +

str(cur)

+"_"

+str

(count)

else

: new_str =new_str +

str(cur)

+"_"

+str

(count)

+"_"

cur = n[i]

count =

1print

(new_str,end="")

import sys

str_n = sys.stdin

for line in str_n:

count_str(line)

def

count_str4

(n):

cur = n[0]

n= n.strip(

) count =

1 new_str =

"" s =

0for i in

range(1

,len

(n))

:if n[i]

== cur:

count +=

1else

: new_str = new_str +

str(cur)

+"_"

+str

(count)

+"_"

cur = n[i]

count =

1 new_str = new_str +

str(cur)

+"_"

+str

(count)

print

(new_str, end="")

import sys

str_n = sys.stdin

for line in str_n:

count_str4(line)

牛客網 表示數值的字串(字串)

題目 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。知識點 正規表示式 d 數字字元匹配,0 9.ee 匹配e或e,匹配括號中任意乙個字元 ...

牛客網 字串價值

熱度指數 7時間限制 1秒空間限制 32768k 有一種有趣的字串價值計算方式 統計字串中每種字元出現的次數,然後求所有字元次數的平方和作為字串的價值 例如 字串 abacaba 裡面包括4個 a 2個 b 1個 c 於是這個字串的價值為4 4 2 2 1 1 21 牛牛有乙個字串s,並且允許你從s...

牛客網 倒置字串

題目描述 將一句話的單詞進行倒置,標點不倒置。比如 i like beijing.經過函式後變為 beijing.like i 這道題我想到兩種方法 1 從後往前遍歷字串,以空格分割,找到每個單詞,然後再遍歷每個單詞,將單詞逐個鏈到新字串上,注意需要將第乙個單詞單獨處理,具體 如下 include ...