[leetcode]-557. Reverse Words in a String III

Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order.

Example 1:

Input: "Let's take LeetCode contest"
Output: "s'teL ekat edoCteeL tsetnoc"

Note: In the string, each word is separated by single space and there will not be any extra space in the string.

代码如下:
 

char* reverseWords(char* s) {
    int len=strlen(s);
    if(len==0||len==1)
        return s;
    int front=0,rear,i,j,a;
    char t;
    for(i=0;i<=len;i++)
    {
        if(s[i]==' '||s[i]=='\0')
        {
        rear=i-1;
        a=(rear+front)/2;
        for(j=front;j<=a;j++)
        {
                t=s[front];
                s[front]=s[rear];
                s[rear]=t;
                front++;
                rear--;
        }
        front=i+1;
        }
    }
    return s;
}

出错记录:第一次将条件写为
 

if(s[i]!=' '||s[i]!='\0')

     continue;

结果每次运行字符串都没变,原样输出。发现是条件不对。条件的反为

s[i]==' '&&s[i]=='\0'

这个条件是一直都无法满足的,所以原样输出。

猜你喜欢

转载自blog.csdn.net/shen_zhu/article/details/81283160