LeetCodeのJavaScript解答第151題:反転文字列の単語(Reverse Words in a String)…
3723 ワード
Time:2019/4/20 Title:Reverse Words In a String Difficulty:Midumn Author:小鹿
タイトル:Reverse Words In a String(文字列を反転させる単語)
Gven an input string,reverse the string word.
文字列を指定して、文字列の各単語を1つずつ反転させます.
Example 1: Aワードis defined as a sequence of non-space characters. Input string may contain leading or triling spaces.However,your reversed string shound not contain leading or triling spaces. You need to reduce multiple spaces between twords to a single space in the reversed string. 説明:無スペース文字で単語を構成します. 入力文字列は、前または後ろに余分なスペースを含むことができますが、反転した文字は含まれません. 二つの単語の間に余分なスペースがあれば、反転後の単語間のスペースを一つだけ含むように減らします. Solve:
π問題分析
すべての単語を倒順に出力し、単語間のスペースを一つだけ残して、文の前後のスペースを全部クリアします.問題の具体的な要求を通じて、私達はもう問題に対して分析してクリアしました.文の前後のスペースをどうやって消しますか?
πアルゴリズムの考え方
1)文の前のすべてのスペースをスキップします.
2)変数によって単語を反転し、次のスペースに出会う前に完全な単語を巡回します.
3)空欄があったら、単語を逆順につづり合わせます.
4)末尾のスペースを消去します.
π試験用例
1)空の文字列
2)中間スペースが1より大きい文字列.
3)単語に句読点がある文字列.
πコード実現
私の個人番号に注目してください.「平凡に甘んじない私たち」は自分でプログラミングした物語を記録しました.
タイトル:Reverse Words In a String(文字列を反転させる単語)
Gven an input string,reverse the string word.
文字列を指定して、文字列の各単語を1つずつ反転させます.
Example 1:
Input: "the sky is blue"
Output: "blue is sky the"
Example 2:Input: " hello world! "
Output: "world! hello"
Explanation: Your reversed string should not contain leading or trailing spaces.
Example 3:Input: "a good example"
Output: "example good a"
Explanation: You need to reduce multiple spaces between two words to a single space in the reversed string.
ノート:π問題分析
すべての単語を倒順に出力し、単語間のスペースを一つだけ残して、文の前後のスペースを全部クリアします.問題の具体的な要求を通じて、私達はもう問題に対して分析してクリアしました.文の前後のスペースをどうやって消しますか?
πアルゴリズムの考え方
1)文の前のすべてのスペースをスキップします.
2)変数によって単語を反転し、次のスペースに出会う前に完全な単語を巡回します.
3)空欄があったら、単語を逆順につづり合わせます.
4)末尾のスペースを消去します.
π試験用例
1)空の文字列
2)中間スペースが1より大きい文字列.
3)単語に句読点がある文字列.
πコード実現
var reverseWords = function(s) {
//
if(s.length === 0) return "";
let [index,len] = [0,s.length];
let word = "";
let result = "";
while(index < len){
//
while(index < len && s.charAt(index) == ' '){
index ++;
}
//
while(index < len && s.charAt(index) !== ' '){
word = `${word}${s.charAt(index)}`;
index ++;
}
//
result = word + ' ' + result;
word = "";
}
return result.trim();
};
LeetCodeオープンソースGithub倉庫に一緒に参加することを歓迎します.他の言語のコードを私に提出してもいいです.倉庫の上で堅持して子供達と一緒にカードを打って、共に私達の開源小倉庫を改善します!Github:https://github.com/luxiangqiang/JS-LeetCode 私の個人番号に注目してください.「平凡に甘んじない私たち」は自分でプログラミングした物語を記録しました.