第一个for循坏有点多余,应只判断是否全为’a’,全为则最后一位改为’b’
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #define f(i, a, b) for (int i = a; i <= b; i++)
char * breakPalindrome(char * palindrome){ if(strlen(palindrome)==1) return ""; f(i,'a','z'){ f(j,0,strlen(palindrome)/2-1){ if(palindrome[j]>i){ palindrome[j]=i; return palindrome; } else if(palindrome[j]!=i){ palindrome[strlen(palindrome)-j-1]=i; return palindrome; } } } return ""; }
|