題目**
輸入:"示例 2:輸入:" hello world! "輸出:"world! hello"解釋:輸入字串可以在前面或者後面包含多餘的空格,但是反轉後的字元不能包括。the sky is blue
"輸出:"blue is sky the
"
示例 3:
輸入:"a good example"輸出:"example good a"解釋:如果兩個單詞間有多餘的空格,將反轉後單詞間的空格減少到只含乙個。方法一:先拆分再倒序合併
public string reversewords(string s)
stringbuilder sb=new stringbuilder();
string words=s.split(" ");
for (int i=words.length-1;i>=0;i--)
}return sb.tostring().trim();
}
方法二:雙指標
從後開始遍歷,乙個指標指向開始遍歷的位置,另乙個指標在遍歷過程中向前移動,直到遇到空格,將這部分作為結果新增到返回結果中
public string reversewords(string s)
stringbuilder sb = new stringbuilder();
int j = s.length() - 1;
int i = j;
while (i >= 0)
if(i!=j)
i--;
j = i;
}return sb.tostring().trim();
}
翻轉單詞順序
1.問題描述 輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。為簡單起見,標點符號和普通字幕一樣處理。例如輸入字串 i am a student.則輸出 student.a am i 來自 劍指offer 2.分析 我們可以第一步翻轉句子中所有的字元。比如反轉 i am a stud...
翻轉單詞順序
首先將i am boy轉為yob ma i,str 0 與str len 1 交換順序,空間複雜度為o 1 然後yob ma i中每個單詞應用同樣的方法翻轉。function reverse str return strarr.join function reverseword str return...
翻轉單詞順序
輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。為簡單起見,標點符號和普通字母一樣處理。例如輸入字串 i am a student.則輸出 student.a am i 示例 1 輸入 the sky is blue 輸出 blue is sky the 示例 2 輸入 hello ...