牛客網
題目描述:給定乙個字串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 ...