1. 程式人生 > >LeetCode 557. Reverse Words in a String III (字串翻轉)

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.

按單詞翻轉字串。要點在\0和size()的判斷和處理,以及最後的空格的處理。
    string reverseWords(string s) {
        string str = "";
        string tmp="",tmp2="";
        int nCrt= 0;
        while(nCrt<s.size())
        {
        	tmp="";
        	while(s[nCrt]!=' '&& nCrt<s.size())
        	{
    	   		tmp+=s[nCrt]; 
    			nCrt++;	
    	    }
    	    nCrt++;
    	    tmp2=tmp;
    	    for(int i=0;i<tmp.size();i++)
    	    {
    	    	tmp2[i] = tmp[tmp.size()-1-i];
        	}
    	    str+=tmp2;
    	    if(nCrt<=s.size()-1)
    			str+=" ";
        }
        return str;
    }