上圖是乙個**的九宮格,如你所見乙個數字對應一些字母,因此在國外企業喜歡把**號碼設計成與自己公司名字相對應。例如公司的help desk號碼是4357,因為4對應h、3對應e、5對應l、7對應p,因此4357就是help。同理,tut-glop就代表888-4567、310-gino代表310-4466。
nowcoder剛進入外企,並不習慣這樣的命名方式,現在給你一串**號碼列表,請你幫他轉換成數字形式的號碼,並去除重複的部分。
輸入描述:
輸入包含多組資料。
每組資料第一行包含乙個正整數n(1≤n≤1024)。
緊接著n行,每行包含乙個**號碼,**號碼僅由連字元「-」、數字和大寫字母組成。
沒有連續出現的連字元,並且排除連字元後長度始終為7(美國**號碼只有7位)。
輸出描述:
對應每一組輸入,按照字典順序輸出不重複的標準數字形式**號碼,即「***-***x」形式。
每個**號碼佔一行,每組資料之後輸出乙個空行作為間隔符。
示例1輸入
124873279
its-easy
888-4567
3-10-10-10
888-glop
tut-glop
967-11-11
310-gino
f101010
888-1200
-4-8-7-3-2-7-9-
487-3279
4utt-help
tut-glop
310-gino
000-1213
輸出310-1010
310-4466
487-3279
888-1200
888-4567
967-1111
000-1213
310-4466
888-4357
888-4567『
分析:先用map將stirng和int 傳進去,再用vector的sort進行排序,最後再輸出。
需要注意的坑 迭代器失效的問題,
#include #include#include #include #include #define max 10000000//是數字的字典序
using namespace std;//計畫有變,有map鍵值對來排序
int cmp(const paira, const pairb) //用於排序的自定義函式
vector> my_sort(map& ipone_real, vector& ipone)
//再根據second排序
//把map的pair放到vector中利用vector的sort排序
vector> ipone_last;
for (auto& e : ipone_real)
sort(ipone_last.begin(), ipone_last.end(), cmp);//對容器進行排序
return ipone_last;
}string change(string& word2)
for (auto& e : word)//對傳入的修改 }
return word;
}int main()
for (auto& e : ipone)
mapipone_real;
vector> ipone_last;
ipone_last = my_sort(ipone_real, ipone);
for (auto& e : ipone_last)
nnew[3] = '-';//加入乙個-可能會導致迭代器失效
e.first = nnew;
cout << e.first << endl;
} cout << endl;
}}
(感覺這個**效率不高,可以用set代替map進行重構)
輸入描述:
每個測試輸入包含2個整數,n和m
輸出描述:
按每個組合的字典序排列輸出,每行輸出一種組合
示例1輸入
5 5輸出
1 42 3
5分析:這道題適合用dfs遞迴求解。剛好這學期算法學過**如下。
#include#includeusing namespace std;
void need(int n, int m, vector& v, int beg)
cout << endl;
} for (int i = beg; i <= n && i <= m; i++)
}int main()
}
每日一題 No 36 AI貪吃蛇(一)
作為乙個一心搞遊戲程式設計師,怎麼可能不寫遊戲呢?今天我就帶大家來寫乙個ai貪吃蛇,讓這條小蛇吃滿螢幕 無 無 無無 c c 學習ai貪吃蛇 一 include include include include include include using namespace std define x ...
每日一題 1
題目詳情 peter喜歡玩數字遊戲,但數獨這樣的遊戲對他來說太簡單了,於是他準備玩乙個難的遊戲。遊戲規則是在乙個n n的 裡填數,規則 對於每個輸入的n,從左上角開始,總是以對角線為起點,先橫著填,再豎著填。這裡給了一些樣例,請在樣例中找到規律並把這個n n的 列印出來吧。輸入描述 多組測試資料 資...
每日一題2018 3 21
leetcode 2 模擬十進位制運算考察單鏈表基本操作。題無難點,個人基礎需要提高。definition for singly linked list.struct listnode class solution while p while q if shi val s next null ret...