给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。
如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。
如果不存在最后一个单词,请返回 0 。
说明:一个单词是指仅由字母组成、不包含任何空格的 最大子字符串。
示例:
输入: “Hello World”
输出: 5
此题的代码如下:
public class lwlength {
public int lengthOfLastWord(String s) {
String[] l=s.split(" ");
String w="";
for(int i=l.length-1;i>=0;i--){
if(!l[i].equals(""))
{
w=l[i];
return w.length();
}
}
return 0;
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
lwlength l=new lwlength();
System.out.println(l.lengthOfLastWord("sdf gbj jj jjj jok "));
}
}
并根据此题
我们继续深化下
做了下面的翻转整个字符串
处理的思路都一样
都是处理好空格就好
题目如下
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。
示例 1:
输入: “the sky is blue”
输出: “blue is sky the”
示例 2:
输入: " hello world! "
输出: “world! hello”
解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
示例 3:
输入: “a good example”
输出: “example good a”
解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。
说明:
无空格字符构成一个单词。
输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个
第二个方法使用的是栈,进行存储。更为容易理解。
package Test2018;
import java.util.Stack;
public class reversew {
public String reverseWords(String s) {
String[] re=s.split(" ");
String res="";
for(int i=re.length-1;i>=0;i--){
if(!re[i].equals("")&&i!=0){
res=res+re[i]+" ";
}
else if(i==0&&!re[0].equals(""))
res=res+re[0];
}
for(String t:re){
if(!t.equals(""))
{System.out.println(t);}
}
if(res.equals(""))
return res;
else if(res.substring(res.length()-1, res.length()).equals(" "))
res=res.substring(0, res.length()-1);
return res;
}
public String reverseWords2(String s) {
String[] re=s.split(" ");
String res="";
Stack<String> stack=new Stack<String>();
for(int i=0;i<re.length;i++){
if(!re[i].equals(""))
stack.push(re[i]+" ");
}
while(!stack.empty()){
res=res+stack.pop();
}
if(res.equals(""))
return res;
else if(res.substring(res.length()-1, res.length()).equals(" "))
res=res.substring(0, res.length()-1);
return res;
}
public static void main(String[] args) {
String s="a good example";//" hello world! ";//" asd dsa dasd asd.";
reversew r=new reversew();
System.out.println(r.reverseWords2(s));
}
}