力扣兩道字符串的題目,最後一個單詞的長度,和翻轉整個字符串!!!!!!

給定一個僅包含大小寫字母和空格 ’ ’ 的字符串 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));

	}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章