牛客最近來了乙個新員工fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事cat對fish寫的內容頗感興趣,有一天他向fish借來翻看,但卻讀不懂它的意思。例如,「student. a am i」。後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是「i am a student.」。cat對一一的翻轉這些單詞順序可不在行,你能幫助他麼?
以單詞為單位,通過split,將字串轉換為陣列,倒序遍歷陣列,並將陣列中的值放入stringbuffer中並加上空格。
public class solution
string strs=str.split(" ");
stringbuffer sb=new stringbuffer();
for(int i=strs.length-1;i>=0;i--)
}return sb.tostring();
}}
當然,這種方法並不是面試官期望的方法。
這類題的通用解法就是按照字元翻轉,進行兩次翻轉。左旋轉字串,這道題也是一樣的方法。
step1:將整個句子先進行一次翻轉。
step2:針對句子內部的每個單詞,以空格為分隔符,進行 第二次翻轉。
public class solution
char strs=str.tochararray();
//首先反轉整個句子
reverse(strs,0,strs.length-1);
//然後依次反轉句子中的每個單詞
int begin=0;
int end=0;
while(beginelse
}return string.valueof(strs);
}private void reverse(char strs,int begin,int end)
}}
public class solution
char strs=str.tochararray();
//對句子進行整體翻轉
reverse(strs,0,strs.length-1);
//翻轉句子中的每個單詞
int blank=-1;
for(int i=0;i}
reverse(strs,blank+1,strs.length-1);
return new string(strs);
}private void reverse(char strs, int begin, int end)
}}
《劍指offer》 翻轉單詞順序列
牛客最近來了乙個新員工fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事cat對fish寫的內容頗感興趣,有一天他向fish借來翻看,但卻讀不懂它的意思。例如,student.a am i 後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是 i am a student....
劍指offer 翻轉單詞順序列
牛客最近來了乙個新員工fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事cat對fish寫的內容頗感興趣,有一天他向fish借來翻看,但卻讀不懂它的意思。例如,student.a am i 後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是 i am a student....
劍指offer 翻轉單詞順序列
牛客最近來了乙個新員工fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事cat對fish寫的內容頗感興趣,有一天他向fish借來翻看,但卻讀不懂它的意思。例如,student.a am i 後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是 i am a student....