力扣两道字符串的题目,最后一个单词的长度,和翻转整个字符串!!!!!!

给定一个仅包含大小写字母和空格 ’ ’ 的字符串 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));

	}

}

发布了48 篇原创文章 · 获赞 9 · 访问量 2404

猜你喜欢

转载自blog.csdn.net/jjy19971023/article/details/104562218