题目:
解题思路:
设俩个指针,一个位于字符串第一个字符,一个位于最后一个字符,当都为字符时交换;不都为字符时直接跳过。
源码:
char * reverseOnlyLetters(char * S){
char b[100];
char temp;
int i = 0;
int j = strlen(S)-1;
if(i == j)
return S;
while(i <= j){
if(isalpha(S[i]) && isalpha(S[j]) ){
temp = S[i];
S[i] = S[j];
S[j] = temp;
i ++;
j --;
}
if(!isalpha(S[i]))
i ++;
if(!isalpha(S[j]))
j --;
}
return S;
}
踩坑点:
当时直接拿ASCALL判断,忘记了大写字母和小写字母中间的字符