当前位置: 首页 > news >正文

wordpress主题出错优化网站怎么做

wordpress主题出错,优化网站怎么做,武汉seo论坛,郑州做供暖的公司网站目录 题目链接:58. 最后一个单词的长度 - 力扣(LeetCode) 题目描述 示例 提示: 解法一:反向遍历 Java写法: C写法: 解法二:逆天解法 思路 存在的问题 总结 题目链接&…

 

目录

题目链接:58. 最后一个单词的长度 - 力扣(LeetCode)

题目描述

示例

提示:

解法一:反向遍历

Java写法:

C++写法:

解法二:逆天解法

思路 

存在的问题

总结


 

题目链接:58. 最后一个单词的长度 - 力扣(LeetCode)

注:下述题目描述和示例均来自力扣

 

题目描述

给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。

单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。

 

示例

示例 1:

输入:s = "Hello World"
输出:5
解释:最后一个单词是“World”,长度为 5。

示例 2:

输入:s = "   fly me   to   the moon  "
输出:4
解释:最后一个单词是“moon”,长度为 4。

示例 3:

输入:s = "luffy is still joyboy"
输出:6
解释:最后一个单词是长度为 6 的“joyboy”。

 

提示:

  • 1 <= s.length <= 10^4
  • s 仅有英文字母和空格 ' ' 组成
  • s 中至少存在一个单词

21f0915dd4fe49fdb336684e060ba55b.jpeg


解法一:反向遍历

  1. 去除尾部的空格
    • 使用std::stringfind_last_not_of方法找到最后一个不是空格的字符的索引。
    • 然后使用erase方法从该索引的下一个位置开始删除,直到字符串末尾,这样就去除了尾部的所有空格。
  2. 检查字符串是否为空
    • 调用empty方法来检查处理后的字符串是否为空。
    • 如果为空,说明原字符串只包含空格,没有实际的单词,因此返回0。
  3. 查找最后一个空格的位置
    • 使用find_last_of方法在字符串中查找最后一个空格的索引。
    • 如果找不到空格(即返回std::string::npos),说明整个字符串就是一个单词,或者整个字符串为空(但已经在第2步中处理过了)。
  4. 计算最后一个单词的长度
    • 如果找到了空格,那么最后一个单词就是空格之后的部分。
    • 因此,最后一个单词的长度就是字符串的总长度减去最后一个空格的索引再减1(因为索引是从0开始的,且我们不希望包括空格本身在内)。
    • 如果没有找到空格,说明整个字符串就是一个单词,直接返回字符串的长度即可。

这个思路的关键在于先对字符串进行预处理(去除尾部空格),然后利用字符串的查找功能来定位最后一个空格的位置,最后根据这个位置来计算最后一个单词的长度。这种方法既简单又高效,能够很好地解决问题。

 

Java写法:

class Solution {public int lengthOfLastWord(String s) {// 去除字符串尾部的空格  s = s.trim();  // 如果字符串为空,则最后一个单词的长度为0  if (s.length() == 0) {  return 0;  }  // 从字符串末尾开始向前遍历,找到最后一个空格的位置  int length = 0;  for (int i = s.length() - 1; i >= 0; i--) {  // 如果当前字符不是空格,则增加单词长度  if (s.charAt(i) != ' ') {  length++;  }  // 如果当前字符是空格,且已经计算过单词长度(即length不为0),则跳出循环  else if (length > 0) {  break;  }  }  return length;  }  
}

ac299b9346d54333932be6d816c07ca9.png

C++写法:

class Solution {
public:int lengthOfLastWord(string s) {// 去除字符串尾部的空格  s.erase(s.find_last_not_of(' ') + 1);  // 如果字符串为空,则最后一个单词的长度为0  if (s.empty()) {  return 0;  }  // 从字符串末尾开始向前遍历,找到最后一个空格的位置  size_t lastSpaceIndex = s.find_last_of(' ');  if (lastSpaceIndex == std::string::npos) {  // 如果没有找到空格,说明整个字符串就是一个单词  return s.length();  } else {  // 返回最后一个单词的长度  return s.length() - lastSpaceIndex - 1;  }  }  
};  

161ba69bcb40495b9f2af9ebeb9c0623.png

 


解法二:逆天解法

这题还是很简单的嘛,但是我看见逆天网有的逆天代码了额如下
 

class Solution {public int lengthOfLastWord(String s) {return s.trim().length()-s.trim().lastIndexOf(" ")-1;}
}

思路 

  1. 去除首尾空格:使用 trim() 方法去除字符串 s 首尾的所有空格字符。
  2. 计算总长度:使用 trim() 方法后的字符串的 length() 方法来获取去除空格后的字符串长度。
  3. 查找最后一个空格的位置:再次使用 trim() 方法(注意这里实际上是多余的,因为 trim() 已经在前一步调用过了,但在这个表达式中它会再次执行)后的字符串的 lastIndexOf(" ") 方法来查找最后一个空格的索引。
  4. 计算单词长度:通过总长度减去最后一个空格的索引(需要再减1,因为索引是从0开始的,并且我们不想包括空格在内)来尝试获取最后一个单词的长度。

存在的问题

  • 多余的 trim() 调用:在表达式中,s.trim() 被调用了两次,这是不必要的,因为它增加了不必要的计算开销,并且如果 trim() 方法有副作用(尽管在这个场景中它没有),那么这种用法可能会引入问题。

  • 错误处理最后一个单词:如果字符串的最后一个字符不是空格(即整个字符串就是一个单词,或者除了最后一个单词外没有其他空格),那么 lastIndexOf(" ") 将返回 -1(因为找不到空格)。此时,length() - (-1) - 1 会导致错误的计算结果,因为 length() - (-1) 实际上是字符串的总长度加1,这显然是不正确的。

043408471c0b4706a5eb041e925bbd8c.jpeg



总结

        一个算法的实现方式很多,比如如果你这里使用python来解决的话,会有一些方法可以直接去除长空格,然后你就可以切割字符串了,最后取出最后一个值不就好啦~~

 

http://www.yidumall.com/news/25989.html

相关文章:

  • wordpress分享QQ插件广东短视频seo营销
  • 网站建设套路临沂google推广
  • 一个公司做网站需要注意什么条件西安百度推广联系方式
  • 腾讯文件怎么转换wordpress专业百度seo排名优化
  • 网站建设总体规划包括哪些方面网站如何优化排名
  • 学做网站论坛VIP怎么样seo优化报告
  • 自己可以做网站么站长统计代码
  • 移动门网站建设优化网站推广教程排名
  • 欧美 手机网站模板下载 迅雷下载 迅雷下载地址搜狗收录提交
  • 章丘做网站哪家强seo怎么做新手入门
  • 男女之间做下面哪个网站免费网站收录提交入口
  • 用织梦做的网站怎么管理系统营销培训班
  • 出口网站怎么做现在百度推广有用吗
  • 查询自己网站外链河南seo推广
  • 先做网站还是先备案网站关键词排名优化
  • 江苏公司响应式网站建设报价搜索最多的关键词的排名
  • 网站怎么做全站搜索网络营销推广方案设计
  • 网站建设 三合一长沙网站推广公司排名
  • asp.net构建门户网站百度推广登录后台登录入口
  • 王璞网站开发实战怎么做电商创业
  • 升阳广州做网站公司舆情信息报送
  • 微信抽奖小程序制作长春百度关键词优化
  • 泰安集团网站建设公司站长之家seo工具包
  • 天河网站建设信科网络百度链接收录提交入口
  • 帝国做的网站根目录营销客户管理系统
  • 谁做视频网站免费做网站推广的软件
  • 网站内外链怎么做品牌软文营销案例
  • 深圳网深圳网站开发公司友情链接实例
  • html做网站收藏按钮抖音关键词挖掘工具
  • tq网站建设广告营销推广方案