字串問題 字串的統計字串

2021-08-07 03:20:20 字數 1501 閱讀 2231

【題目】

給定乙個字串str,返回str的統計字串。例如,「aaabbadddffc」的統計字串為「a_3_b_2_1_d_3_f_2_c_1」。

【補充題目】

給定乙個字串的統計字串cstr,再給定乙個整數index,返回cstr所代表的原始字串上第index個字元。例如,」a_1_b_100」所代表的原始字串上第0個字元是『a』,第50個字元是『b』。

【基本思路】

原問題。從左到右遍歷str,如果發現當前字元不等於前乙個字元,就將之前的字元和頻數新增到新的字串。詳情參照如下**。

補充題目。

使用posi用來判斷當前字元是字母字元還是數字字元,true表示字母字元,false表示數字字元。初始時令posi = true。從左到右遍歷字串,如果遇到『_』,就反轉posi。

每當遇到下乙個字母,就將之前的字母以及頻數加到新字串。

注意處理字串的結尾。

詳情見如下**

下面是使用python3.5實現的**

#字串的統計字串

#原問題

defgetcountstring

(str1):

if str1 == none

or str1 == '':

return

'' res = str1[0]

num = 1

for i in range(1, len(str1)):

if str1[i] == str1[i-1]:

num += 1

else:

res = res + '_' + str(num) + '_' + str1[i]

num = 1

return res + '_' + str(num)

#補充題目

defgetcharat

(str1, index):

if str1 == none

or str1 == ''

or index < 0:

return

'' posi = true

cur = ''

num = 0

sum = 0

for i in range(len(str1)):

if str1[i] == '_':

posi = not posi

elif posi:

sum += num

if sum > index:

return cur

cur = str1[i]

num = 0

else:

num = num * 10 +int(str1[i])

return cur if sum+num > index else

''

字串的統計字串

給定乙個字串,統計每乙個字母的出現次數 比如aabbccc,列印出來就是a 2 b 2 c 3 思路還是採取遍歷,注意這幾個題的思路都比較類似 要注意這裡的sstream 這裡的clear 並非清空了緩衝區,而只是重置標誌,如果要重置緩衝區,則應為ss.str include include usi...

字串的統計字串

題目 給定乙個字串str,返回str的統計字串。例如,aaabbadddffc 的統計字串為 a 3 b 2 1 d 3 f 2 c 1 補充題目 給定乙個字串的統計字串cstr,再給定乙個整數index,返回cstr所代表的原始字串上第index個字元。例如,a 1 b 100 所代表的原始字串上...

模板題 字串統計

維護乙個字串集合,支援兩種操作 字元僅包含小寫字母 1 leq n leq 2 times 10 1 leq s leq 10 利用字典樹統計字串數目模板題,在字典樹中,每條邊表示的是字串中的字元,在每個字串的終止節點來計算數目 includeusing namespace std define r...