1. 程式人生 > >劍指offer -- 翻轉單詞順序

劍指offer -- 翻轉單詞順序

題目描述

牛客最近來了一個新員工Fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事Cat對Fish寫的內容頗感興趣,有一天他向Fish借來翻看,但卻讀不懂它的意思。例如,“student. a am I”。後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是“I am a student.”。Cat對一一的翻轉這些單詞順序可不在行,你能幫助他麼?

AC程式碼

public class Solution {
    public String ReverseSentence(String str) {
        char[] chars =
str.toCharArray(); reverse(chars,0,chars.length - 1); int blank = -1; for(int i = 0;i < chars.length;i++){ if(chars[i] == ' '){ int nextBlank = i; reverse(chars,blank + 1,nextBlank - 1); blank = nextBlank; }
} reverse(chars,blank + 1,chars.length - 1);//最後一個單詞單獨進行反轉 return new String(chars); } public void reverse(char[] chars,int low,int high){ while(low < high){ char temp = chars[low]; chars[low] = chars[high]; chars[
high] = temp; low++; high--; } } }