2022年11月16日 星期三

[1576] Replace All ?'s to Avoid Consecutive Repeating Characters

感覺很累贅XD
一下要檢查是不是頭, 是不是尾, 然後又要檢查是不是連續兩個問號, 
感覺這就是一題看你有沒有考慮各種邊界值的問題?!(嗎XD)
char * modifyString(char * s){
int length=strlen(s);
for (int i=0;i<length;i++)
{
if (s[i]!='?')
continue;
if(s[i]=='?')
{
if (i+1 < length)
{
if (s[i+1]=='?')
s[i]='a';
else
s[i]=((s[i+1]-'a' )%13)+1+'a';
}
else if ((i+1 == length) && i>1)
{
s[i]=((s[i-1]-'a')%13)+1+'a';
}
else
s[i]='a';

if (i>=1 && s[i]==s[i-1])
s[i]=((s[i-1]-'a' )%13)+1+'a';
}
}
return s;
}

感覺(感覺again XD) 我想的太複雜了!想要有漂亮的解的緣故嗎?(thinking 圖)
據說是只會有最多檢查頭尾就好, 所以當問號出現, 套a,b,c並且檢查它的前一個和後一個
這樣就好了

沒有留言:

張貼留言