電話號碼分身

2021-08-21 16:39:39 字數 1691 閱讀 6638

題目描述:

繼miui8推出手機分身功能之後,miui9計畫推出乙個**號碼分身的功能:首先將**號碼中的每個數字加上8取個位,然後使用對應的大寫字母代替 ("zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"), 然後隨機打亂這些字母,所生成的字串即為**號碼對應的分身。

輸入描述:

第一行是乙個整數t(1 ≤ t ≤ 100)表示測試樣例數;接下來t行,每行給定乙個分身後的**號碼的分身(長度在3到10000之間)。
輸出描述:

輸出t行,分別對應輸入中每行字串對應的分身前的最小**號碼(允許前導0)。
示例一:輸入

4

eight

zerotwoone

ohwetenrteo

ohewtiegthenrteo

輸出

0

234345

0345

解題思路:

要先依次解碼具有獨一無二字元的數字,具有這樣特點的數字有五個分別是four(u),six(x),

two(w),eight(g),zero(z),可以根據獨特字元的個數直接判斷有多少個相應的數字,例如有

3個u那麼就一定有3個four...,解碼完成這五個數字之後另外的數字也會由於這些數字的移除

而具有了獨一無二的字元,這樣的數字有five(f),three(t),five找到之後,只有seven含

有v,所以又可以依據v字元的個數解碼seven的個數,最後剩下的one和nine也具有了自己的

標誌性字元分別是one(o),nine(i),需要注意的是原始數字和最終出現的數字還有乙個轉換

的過程(加8取個位數),所以還要相應轉換回去。

實現**:

#include #include using namespace std;

int main() ;

int i,j,k,s;

scanf("%d",&t);

while(t--)

b[1] = b[1] - b[0] - b[2] - b[4];//1對應3

b[3] = b[3] - b[8];//3對應5

b[5] = b[5] - b[4];//5對應7

b[7] = b[7] - b[6];//7對應9

b[9] = b[9] - b[8] - b[5]- b[6];//9對應1

while(b[8]--)

while(b[9]--)

while(b[0]--)

while(b[1]--)

while(b[2]--)

while(b[3]--)

while(b[4]--)

while(b[5]--)

while(b[6]--)

while(b[7]--)

printf("\n");

}}

電話號碼分身

時間限制 1秒 空間限制 32768k 繼miui8推出手機分身功能之後,miui9計畫推出乙個 號碼分身的功能 首先將 號碼中的每個數字加上8取個位,然後使用對應的大寫字母代替 zero one two three four five six seven eight nine 然後隨機打亂這些字母...

電話號碼分身

繼miui8推出手機分身功能之後,miui9計畫推出乙個 號碼分身的功能 首先將 號碼中的每個數字加上8取個位,然後使用對應的大寫字母代替 zero one two three four five six seven eight nine 然後隨機打亂這些字母,所生成的字串即為 號碼對應的分身。第一...

電話號碼分身

繼miui8推出手機分身功能之後,miui9計畫推出乙個 號碼分身的功能 首先將 號碼中的每個數字加上8取個位,然後使用對應的大寫字母代替 zero one two three four five six seven eight nine 然後隨機打亂這些字母,所生成的字串即為 號碼對應的分身。第一...