赞
踩
微信公众号:Java随笔录
关注可了解更多Java相关的技术分享。问题或建议,欢迎公众号留言!
给你一个字符串s,由若干单词组成,单词之间用空格隔开。返回字符串中最后一个单词的长度。如果不存在最后一个单词,请返回0。
单词是指仅由字母组成、不包含任何空格字符的最大子字符串。
示例:
输入:s = "Hello World"
输出:5
输入:s = " "
输出:0
一道简单题,最容易想到的就是先split整个句子,得到一个单词数组,返回数组中最后一个元素的长度即可,这样做完全可以,但是时间以及空间的效果都不太好。
考虑换一种思路,直接在字符串上移动指针进行计数,遇到空格结束,从最后一个字符开始操作。
注意只有一个单词的情况。
/**
* 考虑换一种方法,直接在字符串上移动指针进行计数
* 注意只有一个单词的情况
*
* @param s
* @return
*/
public int lengthOfLastWord(String s) {
s = s.trim();
if ("".equals(s)) {
return 0;
} else {
int cnt = 0;
for (int i = s.length() - 1; i >= 0; i--) {
if (s.charAt(i) == ' ') {
break;
} else {
cnt++;
}
}
return cnt;
}
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。