字符串的统计字符串
題目:給定一個字符串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,如果發現當前字符不等于前一個字符,就將之前的字符和頻數添加到新的字符串
def getCountString(strs):if strs==None or strs=='':return num = 1res = strs[0]for i in range(len(strs)-1):if strs[i]==strs[i+1]:num +=1else:res = res + "_" + str(num) + "_" + strs[i+1]num =1return res + "_" + str(num)getCountString('aaabbadddffc')補充題目。
使用posi用來判斷當前字符是字母字符還是數字字符,True表示字母字符,False表示數字字符。
初始時令posi = True。從左到右遍歷字符串,如果遇到‘_’,就反轉posi。
每當遇到下一個字母,就將之前的字母以及頻數加到新字符串。
注意處理字符串的結尾。
def getStrsIndex(Strs,Index):if Strs == None or Strs == '' or Index < 0:return ''posi = Truenum = 0sum_ = 0for i in range(0,len(Strs)):if Strs[i]=='_':posi = bool(1-posi)elif posi:sum_ += numif sum_ > index:return curcur = Strs[i]num = 0else:num = num * 10 + int(Strs[i])return cur if sum_ + num > index else ''?
總結
- 上一篇: 将整型字符串转成整数值
- 下一篇: 判断字符串数组中是否所有字符只出现了一次