2021-03-12

最后一个单词长度

    • 1. 最后一个单词长度
    • 2. 示例
      • 示例 1
      • 示例 2
    • 3. 解题思路
    • 4. 图示
    • 5. 代码展示及分析
    • 6. 关键字
      • 6.1 continue
      • 6.2 break
    • 7. 运行结果

1. 最后一个单词长度

给你一个字符串 s,由若干单词组成,单词之间用空格隔开。返回字符串中最后一个单词的长度。如果不存在最后一个单词,请返回 0 。[单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。]

2. 示例

示例 1

输入:s = “Hello World”
输出:5

示例 2

输入:s = " "
输出:0

3. 解题思路

从字符串末尾开始向前遍历,有两种解法:

解法一:不考虑末尾空格
以字符串"Hi World"为例,从后向前遍历直到遍历遇到空格为止,即为最后一个单词"World"的长度5;[不够严谨]
解法二:考虑末尾空格
以字符串"Hi World "为例,需要先将末尾的空格过滤掉,加入解法一的操作,得到最后一个单词"World"的长度为5
从后找到空格(作为判断条件)找到单词尾部,再从尾部向前遍历,找到单词头部,最后两者相减,即为单词的长度
时间复杂度:O(n)

4. 图示

5. 代码展示及分析

下面展示一些 内联代码片

//int size=s.size(); //判断字符串是否为空;
  if(size==0) {    
  return 0; 
 }
// class Solution {
     public:   
        int lengthOfLastWord(string s) {
        int size=s.size(); if(size==0) {     
                   return 0; 
                     } 
      else  {    
                  int flag=0;  
        for(int i=size-1;i>=0;i--){//从后依次向前遍历
        if(s[i] == ' ' && flag == 0) //判断第一次遇见空格,且目标变量为零     
                   continue; //继续循环遍历     
             else if(s[i] == ' ') //判断第二次遇见空格           
                     break; //跳出循环 
                  else flag++;  
                           }   
                  return flag;
                        }
              }
       };

6. 关键字

6.1 continue

continue 语句的作用是跳过循环体中剩余的语句而强制进入下一次循环。continue语句只用在 while、for 循环中,常与 if 条件语句一起使用,判断条件是否成立.
2021-03-12_第1张图片

6.2 break

break 关键字用于 while、for 循环时,会终止循环而执行整个循环语句后面的代码。break 关键字通常和 if 语句一起使用,即满足条件时便跳出循环.
2021-03-12_第2张图片

7. 运行结果

2021-03-12_第3张图片
欢迎大家来评论,共同进步!!!

在这里插入图片描述

你可能感兴趣的:(字符串,leetcode,数据结构,c++,c语言)