字串排序

2021-07-03 13:39:48 字數 1088 閱讀 6175

2168:字串排序

編寫乙個程式,將輸入字串中的字元按如下規則排序。

規則1:英文本母從a到z排列,不區分大小寫。

如,輸入:type 輸出:epty

規則2:同乙個英文本母的大小寫同時存在時,按照輸入順序排列。

如,輸入:baba 輸出:aabb

規則3:非英文本母的其它字元保持原來的位置。

如,輸入:by?e 輸出:be?y

樣例:輸入:a famous saying: much ado about nothing(2012/8).

輸出:a aaaabc dfgghh: iimm nnn oooos sttuuuy (2012/8)

規則二表示是穩定的,二氣泡排序是不穩定的,所以本題選的是尋找search()函式來實現。

首先:回顧下string的find()的用法

//find函式返回型別是size_type,沒找到則是npos

string s,flag;

string::size_type pos;

//返回a的下標

pos=s.find(flag);

//返回在s中第一次出現下標的位置

pos=s.find_first_of(flag);

//從字串s 下標4開始,查詢flag ,返回在s 中的下標 

pos=s.find(flag,4); 

//查詢s中flag出現的位置

while((pos=s.find_first_of(flag,pos))!=string::npos))

pos++;

i++;

//查詢flag與s第乙個不匹配的位置

pos=s.find_first_not_of(flag);

//反向查詢,flag在s最後出現的位置

pos=s.rfind(flag);

具體的**吐下:

#include #include #include #include using namespace std;

//search()查詢s中的按順序出現的所有的大小寫字母

vectorsearch(string s) }

for(int i=0;i

字串 字串排序

頻率統計 將頻率轉換為索引 資料分類 回寫頻率統計 統計每個字元出現的次數 將頻率轉換為索引 確定不同字元首位置 從右到左檢查檢查鍵中的字元 public class lsd public class msd public static void sort string a private stat...

《演算法》 字串 字串排序

輸入字串和字串對應的組別 組別也是字串的鍵 在滿足組別有小到大排序的情況下,將字串按字母順序排序 第一步,記錄組別的頻率 為了得到某個字串在排序後的範圍,比如組別2肯定在組別1後面,在組別3前面,把每個組別有多少個人記錄下來,方便我們定位 第三步,分類 該組別的位置起點 向後挪一位 因為當前位被用了...

字串排序

從鍵盤輸入10個學生的姓名和成績,請按字典序排列學生的姓名並輸出 姓名和成績對應關係保持不變 輸入共11行,前10行每行是乙個學生的姓名,最後一行是10個用空格分開的整數表示對應的10個學生成績。輸出姓名按字典序排列後的學生姓名和成績,共10行,每個學生的姓名和成績佔一行,姓名和成績間用逗號分開。b...