本題目來自快手2023年秋招演算法a卷。
通過鍵盤輸入一串小寫字母(a~z)組成的字串。
請編寫乙個字串歸一化程式,統計字串中相同字元出現的次數,並按字典序輸出字元及其出現次數。
例如字串"babcc"歸一化後為"a1b2c2"
遍歷字串,將字元與出現的個數存在乙個dict裡面,然後再結合建立的dict的長度 和存放26個字母的s字串去做比較,從小到大依次輸出。演算法思想較為簡單,但感覺空間複雜度有點高啊,新開闢了dict,字母表s 和存放字串的stra
import sys
try:
dicta={}
s='abcdefghijklmnopqrstuvwxyz'
line = sys.stdin.readline().strip()
if line=='':
print('')
for i in range(len(line)):
if line[i] in dicta:
dicta[line[i]]=dicta[line[i]]+1
else:
dicta[line[i]]=1
k=26
j=len(dicta)
i=0stra=''
while k and j:
if s[i] in dicta:
stra=stra+s[i]+str(dicta[s[i]])
j-=1
k-=1
i+=1
print(stra)
except:
pass
通過了!!!
然後嘗試將報錯的測試樣例放入本地,執行:
在本地執行通過,,,,
總結:一定要記得輸出
牛客 2019快手 字串歸一化
題目描述 通過鍵盤輸入一串小寫字母 a z 組成的字串。請編寫乙個字串歸一化程式,統計字串中相同字元出現的次數,並按字典序輸出字元及其出現次數。例如字串 babcc 歸一化後為 a1b2c2 輸入描述 每個測試用例每行為乙個字串,以 n 結尾,例如cccddecca 輸出描述 輸出壓縮後的字串ac5...
字串歸一化
輸入 字元陣列 輸出 字元陣列 轉換規則 單詞 非空格字元認為是單詞構成 間保留乙個空格,最開始和最結尾的地方不保留空格,奇數個單詞首字母大寫,其他小寫。要求 時間複雜度o n 空間複雜度o 1 即char原地轉換。舉例 輸入 i am a good student 輸出 i am a good s...
day5 字串 函式
字串 1.單引號,雙引號,三引號括起來的都是字串 索引 從0開始 str 0 遍歷 for迴圈 判斷字串中是否都是數字 字母 返回bool型 string.isdecimal string.isalpha 字串替換 缺省會全部替換 string.replace old,new,次數 字串查詢 str...