Code15の最後の単語の長さ

トピック

leetcode58。最後の単語の長さ
大文字と小文字とスペースのみを含む文字列
sが与えられた場合、最後の単語の長さを返します。文字列が左から右にスクロールする場合、最後の単語が最後に表示される単語です。
最後の単語がない場合は、0を返します。
注:単語とは、文字のみで構成され、スペース文字を含まない最大の部分文字列を指します。

例:
入力: "Hello World"
出力:5

コード

  • アイデア
    • 最初の非スペースから数えて、最後から後方にトラバースし、スペースに再び遭遇するか、トラバーサルが終了します。
  • コード
// C
#include <string.h>
int lengthOfLastWord(char* s) {
    
    
  int len = 0;
  for (int i = strlen(s)-1; i >= 0; --i){
    
    
    if (s[i] != ' '){
    
    
      ++len;
    }else {
    
    
      if (len) {
    
    
        break;
      }
    } 
  }

  return len;
}

// C++
#include <string>
using namespace std;
class Solution {
    
    
 public:
  int lengthOfLastWord(string s) {
    
    
    int len = 0;
    for (int i = s.size() - 1; i >= 0; --i) {
    
    
      if (s[i] != ' ') {
    
    
        ++len;
      } else {
    
    
        if (len) {
    
    
          break;
        }
      }
    }
    return len;
  }
};

テスト

#include <iostream>
int main() {
    
    
  {
    
    
    char* s = "Hello World";
    cout << lengthOfLastWord(s) << endl;
  }
  {
    
    
    string s = "Hello World";
    Solution so;
    cout << so.lengthOfLastWord(s) << endl;
  }
  cin.get();
  return 0;
}
  • 結果:
5
5

おすすめ

転載: blog.csdn.net/luoshabugui/article/details/109655765