2022年11月8日 星期二

[423] Reconstruct Original Digits from English

有點奇怪的題目(thinking圖)
跑出來的時間更是奇怪XD
但是算了~(每題都算了~這樣可以嗎XD)
時間寶貴~趕緊前往下一題XD
char * originalDigits(char * s){
#if 0
zero //z
one
two //w
three
four //u
five
six //x
seven
eight //g
nine
#endif
int a[10]={0,};
for (int i=0;i<strlen(s);i++)
{
if (s[i]=='z') a[0]++;
if (s[i]=='w') a[2]++;
if (s[i]=='u') a[4]++;
if (s[i]=='x') a[6]++;
if (s[i]=='g') a[8]++;
if (s[i]=='f') a[5]++;//4+5
if (s[i]=='s') a[7]++;//6+7
if (s[i]=='h') a[3]++;//3+8
if (s[i]=='i') a[9]++;//5+6+8+9
if (s[i]=='o') a[1]++;//0+1+2+4
}
a[5]-=a[4];
a[7]-=a[6];
a[3]-=a[8];
a[9]= a[9]-a[5]-a[6]-a[8];
a[1]= a[1]-a[0]-a[2]-a[4];
int len=100000/3 +1;
char *ret = calloc(len, sizeof(char));
int retLen=0;
for (int i=0;i<10;i++)
{
for (int j=0;j<a[i];j++)
ret[retLen++]=i+'0';
}

return ret;
}

沒有留言:

張貼留言