日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

01 題目描述

輸入一個英文句子,翻轉句子中單詞的順序,但單詞內字符的順序不變。為簡單起見標點符號和普通字母一樣處理。例如輸入字符串"I am a student." 翻轉后是"student. a am I"

02 解題

這道題我們可以分兩步,第一步翻轉所以字符的順序如:I am a student. 翻轉為 .tnedut a ma i。第二步,將每個單詞中的所有字符翻轉,結果為 student. a am i。

翻轉數組實現:一個首指針start=0,尾指針end=arrays.length-1。分別指向字符串數組的頭和尾。交換start和end所在位置的值。之后start++,end--;直到start >= end;

算法系列之翻轉單詞順序

 

翻轉代碼

public static void reverse(char[] chars, int start, int end) {
 while (start < end) {
 char tmp = chars[start];
 chars[start] = chars[end];
 chars[end] = tmp;
 start ++;
 end --;
 }
}

第二步:翻轉單詞內部順序

如 .tnedut a ma i。

記start=0,end=0;end++ 到下一個空格end=6,翻轉 start 到end-1的值,

之后進入下一個單詞 end++; start=end;end繼續遍歷到空格,翻轉start到end-1的值。直到最后一個單詞

public static char[] reversewords(char []words) {
 if (words == null || words.length == 0) {
 return null;
 }
 int start = 0, end = 0;
 reverse(words, start, words.length - 1); // 1. 翻轉整個數組
 while (end < words.length) {
 if (words[end] != ' ') {
 end ++;
 } else {
 reverse(words, start, end - 1);
 end ++;
 start = end;
 }
 }
 System.out.println(words);
 return words;
}

分享到:
標簽:翻轉 算法 單詞 順序
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定