2023年7月26日 星期三

[1768] Merge Strings Alternately

字串題
看起來可愛 XD

char * mergeAlternately(char * word1, char * word2){
int l1 = strlen(word1);
int l2 = strlen(word2);
char *ret = malloc (sizeof(char)*(l1+l2+1));
int i, idx;
idx=0;
for (i=0;i<l1 && i<l2;i++)
{
ret[idx++]=word1[i];
ret[idx++]=word2[i];
}
if (l1 <l2)
{
while (i<l2)
ret[idx++]=word2[i++];
}
else if (l2<l1)
{
while (i<l1)
ret[idx++]=word1[i++];
}
ret[idx]='\0';
return ret;
}

[20251104更新]
哦看來我又有一咪咪進步了呢 XD 字串長度要記得加一~~~~
#define MIN(A, B) (A<B)?(A):(B)
char * mergeAlternately(char * word1, char * word2){
int l1 = strlen(word1);
int l2 = strlen(word2);
char* ret = calloc(l1+l2+1, sizeof(char));
int idx = 0, i=0, j=0;
while (idx < MIN(l1,l2) && i<l1 && j< l2)
{
if (idx %2 ==0)
ret[idx++]= word1[i++];
else
ret[idx++]= word2[j++];
}
while (i<l1)
ret[idx++]= word1[i++];
while (j<l2)
ret[idx++]= word2[j++];
return ret;

}

沒有留言:

張貼留言