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