剣指Offer 58-I.反転単語の順番
剣指Offer 58-I.反転単語の順番
テーマの説明:
英語の文を入力して、文の単語を反転させる順序ですが、単語内の文字の順序は変わりません.簡単のために、句読点は普通の文字と同じように扱います.例えば、入力文字列「I am a student.“,就出力”student.a am I”.
例:
入力:「the sky is blue」出力:「blue is sky the」
入力:「hello world!」出力:「world!hello」解釈:入力文字列は前または後ろに余分なスペースを含むことができますが、反転後の文字は含まれません.
入力:「a good example」出力:「example good a」解釈:2つの単語の間に余分なスペースがあると、反転後の単語間のスペースが一つだけ含まれるようになります.
考え方:
まずtrim()で文字列の両端のスペースを削除し、split('')は文字列をスペースを境界とする単語ブロックにカットし、filter()は配列中の純スペースをフィルタし、reverse()は配列反転を行い、join(')は配列を中間にスペースだけの文字列に変更します.
コード:
テーマの説明:
英語の文を入力して、文の単語を反転させる順序ですが、単語内の文字の順序は変わりません.簡単のために、句読点は普通の文字と同じように扱います.例えば、入力文字列「I am a student.“,就出力”student.a am I”.
例:
入力:「the sky is blue」出力:「blue is sky the」
入力:「hello world!」出力:「world!hello」解釈:入力文字列は前または後ろに余分なスペースを含むことができますが、反転後の文字は含まれません.
入力:「a good example」出力:「example good a」解釈:2つの単語の間に余分なスペースがあると、反転後の単語間のスペースが一つだけ含まれるようになります.
考え方:
まずtrim()で文字列の両端のスペースを削除し、split('')は文字列をスペースを境界とする単語ブロックにカットし、filter()は配列中の純スペースをフィルタし、reverse()は配列反転を行い、join(')は配列を中間にスペースだけの文字列に変更します.
コード:
var reverseWords = function(s){
return s.trim().split(' ').filter(item => item!='').reverse().join(' ')
};