3055 字元頻率

2021-10-04 10:48:37 字數 1754 閱讀 8117

單點時限: 2.0 sec

記憶體限制: 256 mb

設 26 個英文本母,每個字母都對應乙個使用頻率,同乙個字母的大小寫使用頻率相同。

現給定乙個由 26 個英文本母構成的字串,請將字串按照字母使用頻率由大到小重排,使用頻率大的字母排在前面,使用頻率小的字母排在後面,如果使用頻率相同則按照字母順序表排列,小寫字母排在大寫字母前面,即 a→ a→ b→ b→ c→ c→ d→ d→ ⋯ → z→ z。

例如 :

26 個字母的使用頻率如下表

字串 aertrtsaberedet 重排後為 eeeetttaarrrsdb

輸入格式

第 1 行:乙個整數 t (1≤t≤10) 為問題數。

對於每個問題,有 2 行資料,按如下格式輸入:

第 1 行輸入 26 個浮點數,分別表示 26 個英文本母 a(a)~z(z) 的使用頻率;

第 2 行輸入乙個字串,字串長度不超過 100 個字元,字串由 26 個英文本母構成。

輸出格式

對於每個問題,輸出一行問題的編號(0《開始編號,格式:case #0: 等)。

然後對應每個問題在一行中輸出重排後的字串。

樣例input

38.19 1.47 3.83 3.91 12.25 2.26 1.71 4.57 7.10 0.14 0.41 3.77 3.34 7.06 7.26 2.89 0.09 6.85 6.36 9.41 2.58 1.09 1.59 0.21 1.58 0.08

thisisaexample

8.19 1.47 3.83 3.91 12.25 2.26 1.71 4.57 7.10 0.14 0.41 3.77 3.34 7.06 7.26 2.89 0.09 6.85 6.36 9.41 2.58 1.09 1.59 0.21 1.58 0.08

aertrtsaberedet

8.19 1.47 3.83 3.91 12.25 2.26 1.71 4.57 7.10 0.14 0.41 3.77 3.34 7.06 7.26 2.89 0.09 6.85 6.36 9.41 2.58 1.09 1.59 0.21 1.58 0.08

thequickbrownfoxjumpsoverthelazydog

output

case #0:

eetaaiisshlmpx

case #1:

eeeetttaarrrsdb

case #2:

eeettaooooinrrshhdclmpuufgwybvkxjqz

/*

思路:很簡單,就是sort+cmp

就是注意所有的頻率一樣大時cmp注意不要遺漏

*/#include

#include

using

namespace std;

double flag[

100]

;bool

cmp(

char a,

char b)

return flag[a-

'a']

>flag[b-

'a'];}

intmain()

string s;

cin>>s;

sort

(s.begin()

,s.end()

,cmp)

;printf

("case #%d:\n"

,i);

cout<}return0;

}

38 字元中的唯一字元

原題目 給定乙個字串,找到它的第乙個不重複的字元,並返回它的索引。如果不存在,則返回 1。示例 s leetcode 返回 0 s loveleetcode 返回 2 思路 用for迴圈遍歷每乙個元素,然後用find函式從前到後尋找這個元素並返回這個元素所在的位置,用rfind從後到錢尋找這個元素並...

021 字元陣列

021 字元陣列 以字元陣列為基礎做簡單的文版編輯器,該程式出入文字行直至遇到 乙個空行為止,而後每次乙個字元重新顯示各行。出語言精彩程式設計百例 第21 include define max 100 define len 80 void main char text max len registe...

1039 字元消除

字元消除,正好簡單複習一下,c 中的容器。容器使用起來還是比較方便的,包括string型別,還是要經常寫寫,才知道自己那些地方有問題。include stdafx.h include include include using namespace std string stringremove st...