編寫乙個程式,將輸入字串中的字元按如下規則排序。規則 1 :英文本母從 a 到 z 排列,不區分大小寫。
如,輸入: type 輸出: epty
規則 2 :同乙個英文本母的大小寫同時存在時,按照輸入順序排列。
如,輸入: baba 輸出: aabb
規則 3 :非英文本母的其它字元保持原來的位置。
如,輸入: by?e 輸出: be?y
注意有多組測試資料,即輸入有多行,每一行單獨處理(換行符隔開的表示不同行)
輸入描述:輸入字串
輸出描述:
輸出字串
示例1思路:本題主要實現三個規則輸入a famous saying: much ado about nothing (2012/8).
輸出a aaaabc dfgghh: iimm nnn oooos sttuuuy (2012/8).
規則1、規則2實現方式:用乙個陣列儲存英文本母,然後用sort函式進行排序,這裡用到arr.sort(key=),key中填寫排序的主鍵,即按照該key進行公升序(預設)排序,然後用到lambda匿名函式,arr.sort(key=lambda x:x.upper())表示根據arr陣列中每個字母的大寫順序進行排序
規則3實現方式:用乙個陣列記錄讀取進來的字串的字元,若不是英文本母,就直接在對應位子賦值該值
#coeding=utf-8
import sys
while
true
: line=sys.stdin.readline(
)if line==
'\n'
:break
line=line.strip(
'\n'
) arr=
res=[0
]*len(line)
for i in
range
(len
(line)):
#規則3
ifnot line[i]
.isalpha():
res[i]
=line[i]
else:)
#規則1、規則2
arr.sort(key=
lambda x:x.upper())
for i in
range
(len
(line)):
if res[i]==0
: res[i]
=arr[0]
arr.remove(arr[0]
)for ch in res:
print
(ch,end='')
print
()
字串 字串排序
頻率統計 將頻率轉換為索引 資料分類 回寫頻率統計 統計每個字元出現的次數 將頻率轉換為索引 確定不同字元首位置 從右到左檢查檢查鍵中的字元 public class lsd public class msd public static void sort string a private stat...
《演算法》 字串 字串排序
輸入字串和字串對應的組別 組別也是字串的鍵 在滿足組別有小到大排序的情況下,將字串按字母順序排序 第一步,記錄組別的頻率 為了得到某個字串在排序後的範圍,比如組別2肯定在組別1後面,在組別3前面,把每個組別有多少個人記錄下來,方便我們定位 第三步,分類 該組別的位置起點 向後挪一位 因為當前位被用了...
字串排序
從鍵盤輸入10個學生的姓名和成績,請按字典序排列學生的姓名並輸出 姓名和成績對應關係保持不變 輸入共11行,前10行每行是乙個學生的姓名,最後一行是10個用空格分開的整數表示對應的10個學生成績。輸出姓名按字典序排列後的學生姓名和成績,共10行,每個學生的姓名和成績佔一行,姓名和成績間用逗號分開。b...