2022年11月15日 星期二

[2325] Decode the Message

奇怪我有一種一失足成千古恨的感覺XD
究竟~~~是要存char , 還是要存int 呢!!!
一開始覺得是char, 後來不知為啥又改成了int, 是不是反而多此一舉啊哈哈哈 XDDDD
先貼個目前的版本
char * decodeMessage(char * key, char * message){
int* map= malloc (sizeof(int)*26);
memset(map, -1, sizeof (int)*26) ;
int removeSpaceCount=0;
for (int i=0;i<strlen(key);i++)
if (key[i]!=' ' && map[key[i]-'a'] <0)
map[key[i]-'a'] =removeSpaceCount++;

char* output= malloc (sizeof(char)* (strlen(message)+1));
for (int i=0;i<strlen(message);i++)
{
if (message[i]== ' ')
output[i]=message[i];
else
output[i]= 'a'+map[message[i]-'a'];

}
output[strlen(message)]='\0';
return output;
}

另外這題有個陷阱就是, 很容易忘記把空格考慮進去啊!
算index 的時候會超過26!!! 就是空白惹的禍!!!

如果把return 值直接填回原本的message, 那不但少了一個malloc return 字串,
也可以省掉檢查空白的部分. 因為原本空白的部分就不會改變~~~



沒有留言:

張貼留言