2023年8月19日 星期六

[1370] Increasing Decreasing String

 奇怪!!!我寫起來怎麼這麼醜!!!

但是沒時間了XD 先醬吧

char * sortString(char * s){
int len =strlen(s);
int *table = calloc(26, sizeof(int));
for (int i=0;i<len;i++)
table[s[i]-'a'] ++;

char *ret = malloc (sizeof(char)* (len+1));
bool directForward= true;
int idx =0;
for (int i=0;i<len;i++)
{
if (directForward)
{
while (idx <26 && table[idx] <=0 )
idx++;

if (idx ==26)
{
directForward = false;
idx = 25;
i--;
continue;
}
}
else
{
while (idx >=0 && table[idx]<=0)
idx--;

if (idx <0)
{
directForward = true;
idx = 0;
i--;
continue;
}
}

table[idx]--;
ret[i]=(idx + 'a');
if (directForward)
idx ++;
else
idx --;
}
ret[len]= '\0';
return ret;
}

沒有留言:

張貼留言