日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

数组翻转_算法系列之翻转单词顺序

發(fā)布時間:2025/3/20 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数组翻转_算法系列之翻转单词顺序 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

01 題目描述

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

02 解題

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

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

翻轉(zhuǎn)代碼

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 --; }}

第二步:翻轉(zhuǎn)單詞內(nèi)部順序

如 .tnedut a ma i。

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

之后進入下一個單詞 end++; start=end;end繼續(xù)遍歷到空格,翻轉(zhuǎn)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. 翻轉(zhuǎn)整個數(shù)組 while (end < words.length) { if (words[end] != ' ') { end ++; } else { reverse(words, start, end - 1); end ++; start = end; } } System.out.println(words); return words;}

總結(jié)

以上是生活随笔為你收集整理的数组翻转_算法系列之翻转单词顺序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。