banner
ekko

ekko's blog

时间不在于你拥有多少,而在于你怎样使用
github
xbox
email

最後の単語の長さ

説明#

大文字と小文字、およびスペース ' ' のみを含む文字列が与えられた場合、その最後の単語の長さを返します。

最後の単語が存在しない場合は、0 を返します。

注意: 単語は文字で構成されるが、スペースを含まない文字列を指します。

例:

入力: "Hello World"
出力: 5

アプローチ#

  • 空の文字列は 0 を返す
  • 逆順でスペースでない要素を検索し、見つからない場合は 0 を返す
  • スペースでない要素からカウントを開始し、スペースの要素に遭遇するか検索が終了するまでカウントし、その値を返す
int lengthOfLastWord(char * s){
    int length = strlen(s) - 1,word_length = 0;

    if(length < 0)//空の文字列
        return 0;
    
    while (s[length] == ' ')//最後のスペースでない要素を見つける
        if(--length < 0)//検索が完了したかどうか
            return 0;
    
    for(;length >= 0 && s[length] != ' ';length--)//要素がスペースでなく、検索が完了していない場合
        word_length++;

    return word_length;
}

注意#

  • スペースでない要素を検索する際は、まずスペースかどうかを確認し、その後に長さを減らし、検索が完了したかどうかを確認する必要があります。そうしないと、配列外参照エラーが発生する可能性があります。
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。