電話號碼分身(小公尺2017秋招真題)

2021-10-04 05:46:03 字數 1619 閱讀 9522

題目描述

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

然後隨機打亂這些字母,所生成的字串即為**號碼對應的分身。

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

樣例輸入

eight

zerotwoone

ohwetenrteo

ohewtiegthenrteo

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

樣例輸出

1.記錄每個字母的個數

2.根據優先順序(是否擁有標識字母、(num + 10 - 8)%10的大小)來存入vector內

3.容器排序後輸出

#include#include#include#include#include#includeusing namespace std;

char s[10011];

int d[333];//字母數量

vectornumber;

//根據存入對應數目的數字個數

void add(int num,int cnt)

}//根據字串組成字母,清除對應字母個數

void del(string ss,int cnt)

}//遍歷排除

int main()

number.clear();

//擁有標識自身的字母g,z,w,u,x

add(8,d['g']); del("eight",d['g']);//0

add(0,d['z']); del("zero",d['z']);//2

add(2,d['w']); del("two",d['w']);//4

add(4,d['u']); del("four",d['u']);//6

add(6,d['x']); del("six",d['x']);//8

//排除上述字母分別標識o,t,f,s

add(1,d['o']); del("one",d['o']);//3

add(3,d['h']); del("three",d['h']);//5

add(5,d['f']); del("five",d['f']);//7

add(7,d['s']); del("seven",d['s']);//9

//排除上述8個才可標識

add(9,d['i']); del("nine",d['i']);//1

//排序

sort(number.begin(),number.end());

int len=number.size();

for(int i=0;iprintf("\n");

}return 0;

}

電話號碼分身(小公尺2017秋招真題)

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

2017校招真題 小公尺 電話號碼分身

本文首發於我的個人部落格suixin s blog繼miui8推出手機分身功能之後,miui9計畫推出乙個 號碼分身的功能 首先將 號碼中的每個數字加上8取個位,然後使用對應的大寫字母代替 zero one two three four five six seven eight nine 然後隨機打...

2017 小公尺 電話號碼分身

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