[Leetcode]第[58]题[JAVA][最后一个单词的长度][字符串]

【问题描述】[简单]

在这里插入图片描述

【解答思路】

  • 直接定位最后一个单词

  • 先找最后一个单词最后一个字母

  • 再找最后一个单词第一个字母

1. 常规做法

时间复杂度:O(N) 空间复杂度:O(1)

class Solution {public int lengthOfLastWord(String s) {int end = s.length() - 1;while(end >= 0 && s.charAt(end) == ' ') end--;if(end < 0) return 0;int start = end;while(start >= 0 && s.charAt(start) != ' ') start--;return end - start;}
}
2. 索引法

trim()去除首尾空格
lastIndexOf(int ch) 最后一个空格出现的下标
时间复杂度:O(N) 空间复杂度:O(1)

class Solution {public int lengthOfLastWord(String s) {s = s.trim();int num = s.length() -1 - s.lastIndexOf(" ");return num;}
}
3. 通用匹配最后一个单词长度

时间复杂度:O(N) 空间复杂度:O(1)

public int lengthOfLastWord(String s) {int start,end ;int index =s.length()-1;while(index>=0 && (!Character.isLetter(s.charAt(index)))){index--;}if(index< 0) return 0;end = index;while(index>=0 && Character.isLetter(s.charAt(index)) ){index--;}start =index;return end - start ;}

【总结】

1.java判断字符串是否是数字/字母

数字 Character.isDigit(char ch)
字母 Character.isLetter(char ch)在这里插入图片描述

2.String类常用函数链接
3.字符串遍历 善用while

参考链接:http://www.blogjava.net/Javaphua/archive/2007/06/05/122131.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/425334.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

50session的销毁会话和超时管理

定义一个page1 <% page language"java" import"java.util.*,java.text.*" contentType"text/html; charsetUTF-8"pageEncoding"UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset"utf-8"&…

[密码学基础][信息安全][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第11篇]DLP、CDH和DDH问题是什么?

这是一系列博客文章中最新的一篇&#xff0c;文章的主题是“做密码学每个博士生都应该知道的52件事”。这一系列问题是为了让博士生们在第一年结束时了解他们应该知道的事情。本博客是数学背景部分的第二部分&#xff0c;关注如何使用群操作设计密码原语。 就像你现在知道的那…

53pagecontext对象

建立一个test08 <% page language"java" contentType"text/html; charsetUTF-8"pageEncoding"UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset"ISO-8859-1"> <title>Insert title here&l…

[Leetcode][程序员面试金典][面试题16.11][JAVA][跳水板][数学][动态规划]

【问题描述】[简单] 【解答思路】 边界问题 k0 &#xff0c;不能产生跳水板&#xff0c;返回空数组shorter 等于longer&#xff0c;只有一种跳水板&#xff0c;返回longerk 思路 一般情况&#xff0c;k块木板&#xff0c;k种可能 跳水板的长度是 shorter(k-j)longer*j&#x…

54include对象

建立一个test11对象 <% page language"java" import"java.util.*" contentType"text/html; charsetUTF-8"pageEncoding"UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset"ISO-8859-1">…

55exception对象

定义exception.jsp <% page language"java" import"java.util.*" contentType"text/html; charsetUTF-8"pageEncoding"UTF-8" errorPage"File.jsp" %> <!DOCTYPE html> <html> <head> <meta c…

[剑指offer]面试题第[43]题[Leetcode][第233题][JAVA][1~n整数中1出现的次数][找规律][递归]

【问题描述】[困难] 【解答思路】 1. 暴力 &#xff08;超时&#xff09; 逐个数统计’1’的数量 时间复杂度&#xff1a;O(N^2) 空间复杂度&#xff1a;O(1) public int countDigitOne(int n) {int count 0;for(int i1;i<n;i){int tmp i;while(tmp>0){if(tmp%101){c…

56jsp登录案例

链接&#xff1a;https://pan.baidu.com/s/1W4UYInbsm17V9_2rFLNGFg 提取码&#xff1a;c5g5 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦 login.jsp <% page language"java" import"java.util.*" contentType"text/html; chars…

matplotlib的颜色和控制条

为了方便记忆&#xff0c;收藏备用 一 linestyle - solid line style -- dashed line style -. dash-dot line style : dotted line style 二marker style . point marker , pixel marker o circle marker v triangle_down mark…

[Leetcode][程序员面试金典][面试题17.13][JAVA][恢复空格][动态规划][Trie][字符串哈希]

【问题描述】[中等] 【解答思路】 1. 动态规划 动态规划流程 第 1 步&#xff1a;设计状态 dp[i] 表示字符串的前 i 个字符的最少未匹配数。 第 2 步&#xff1a;状态转移方程 假设当前我们已经考虑完了前 i -1个字符了&#xff0c;对于前 i 个字符对应的最少未匹配数&#…

[Leetcode][第1392题][JAVA][最快乐前缀][KMP][字符串编码]

【问题描述】[困难] 【解答思路】 1. Rabin-Karp 字符串编码&#xff08;详见总结&#xff09; 关于为什么哈希值计算乘数为31&#xff0c;说法是&#xff0c;首先31是质数&#xff0c;其次编译器会将31*i 优化为 (i<<5)-i 时间复杂度&#xff1a;O(N^2) 空间复杂度&…

平面图转对偶图19_03_21校内训练 [Everfeel]

对于每个平面图&#xff0c;都有唯一一个对偶图与之对应。若G‘是平面图G的对偶图&#xff0c;则满足&#xff1a; G中每一条边的两个节点对应着G中有公共边的面&#xff0c;包括最外部无限大的面。 直观地讲&#xff0c;红色标出来的图就是蓝色标出的图的对偶图。 求出一个平面…

58如何调出eclipse左边文件栏

如何让windows的左侧显示 点击windows --show view--project explore 像eclipse底部的一些信息展示不见了&#xff0c;比如代码输出结果展示的 console 等都可以通过 ShowView 找到并显示出来哦&#xff0c;如果没有就去 Window -> ShowView -> other去找吧

[JAVA][算法] [字符串匹配]KMP

我们为什么需要KMP&#xff1f; 在字符串匹配问题中&#xff0c;我们需要找到匹配串pattern在原串text中的位置&#xff0c;一种显而易见的思路就是暴力匹配&#xff0c;如图所示&#xff0c;我们把pattern放置到text中的每个位置进行比较即可。 但是大家可以发现&#xff0c;…

[Leetcode][第309题][JAVA][最佳买卖股票时机含冷冻期][动态规划][压缩空间]

【问题描述】[中等] 【解答思路】 1. 动态规划 动态规划流程 第 1 步&#xff1a;设计状态 f[i]表示第 i 天结束之后的「累计最大收益」 第 2 步&#xff1a;状态转移方程 f[i][0]max(f[i−1][0],f[i−1][2]−prices[i]) f[i][1]f[i−1][0]prices[i] f[i][2]max(f[i−1][1]…

59 javabean的创建

在一个项目里定义一个java类 package srever;public class Users {private String username;private String password;public Users() {}public String getUsername() {return username;}public void setUsername(String username) {this.username username;}public String g…

[剑指offer]面试题第[63]题[Leetcode][第121题][JAVA][买卖股票的最佳时机][动态规划][暴力]

【问题描述】[简单] 【解答思路】 1. 暴力 时间复杂度&#xff1a;O(N^2) 空间复杂度&#xff1a;O(1) public class Solution {public int maxProfit(int prices[]) {int maxprofit 0;for (int i 0; i < prices.length - 1; i) {for (int j i 1; j < prices.leng…

60usebean创建实例对象

建立一个users的java类 package srever;public class Users {private String username;private String password;public Users() {}public String getUsername() {return username;}public void setUsername(String username) {this.username username;}public String getPas…

ROS学习笔记四:用C++编写ROS发布与订阅

一、创建并编译功能包 1.1 创建功能包 在工作空间的 src 目录下创建功能包&#xff1a; $ cd ~/dev/catkin_ws/src $ catkin_create_pkg chapter2_tutorials std_msgs roscpp 1.2 编译功能包 进入工作目录下编译全部功能包&#xff1a; $ cd ~/dev/catkin_ws/ $ catkin_make 如…