題目描述:
編寫乙個函式,其作用是將輸入的字串反轉過來。輸入字串以字元陣列 char 的形式給出。
不要給另外的陣列分配額外的空間,你必須原地修改輸入陣列、使用 o(1) 的額外空間解決這一問題。
你可以假設陣列中的所有字元都是 ascii 碼表中的可列印字元。
示例 1:解題思路:輸入:[「h」,「e」,「l」,「l」,「o」] 輸出:[「o」,「l」,「l」,「e」,「h」] 示例 2:
輸入:[「h」,「a」,「n」,「n」,「a」,「h」] 輸出:[「h」,「a」,「n」,「n」,「a」,「h」]
1、第一種解題思路:利用for迴圈借助中間值,來進行陣列中的元素交換
2、第二種解題思路:將char型的陣列轉換成字串,利用stringbuffer.reverse(),即自帶的翻轉函式
3、第三種解題思路:使用遞迴雙指標,乙個頭指標,乙個尾指標,當兩個指標相遇之時則翻轉完成
下面來分別進行實現:
1、第一種解題思路:利用for迴圈借助中間值,來進行陣列中的元素交換
優點:想法簡單,容易想出
缺點:時間效率低
class
solution
}}
2、第二種解題思路:將char型的陣列轉換成字串,利用stringbuffer.reverse(),即自帶的翻轉函式
優點:不用進行陣列元素之間的交換(這裡指顯示的交換)
缺點:時間效率低
class
solution
stringbuffer strb =
newstringbuffer
(str)
; strb.
reverse()
; strb.
getchars(0
, s.length,s,0)
;}}
3、第三種解題思路:使用遞迴雙指標,乙個頭指標,乙個尾指標,當兩個指標相遇之時則翻轉完成
優點:時間效率較高
建議:要有使用「指標」的思想
class
solution
public
void
reversestring
(char
s,int left,
int right)
char tmp = s[left]
; s[left]
= s[right]
; s[right]
= tmp;
reversestring
(s,++left,
--right);}
}
實現 strStr 字串匹配的三種解法
題目描述 實現 strstr 函式。給定乙個 haystack 字串和乙個 needle 字串,在 haystack 字串中找出 needle 字串出現的第乙個位置 從0開始 如果不存在,則返回 1。示例 1 輸入 haystack hello needle ll 輸出 2 示例 2 輸入 hays...
php反轉字串的三種方法
假設有字串abcd,用php實現字串翻轉 1.第一種php有自帶的函式strrev可以輕鬆實現 str abcd 第一種自帶strrev實現翻轉 echo strrev str 輸出效果 2.就是把分割字串到乙個陣列中,然後遍歷拼接 function joinstrrev str return ne...
345 反轉字串中的母音字母Leetcode
編寫乙個函式,以字串作為輸入,反轉該字串中的母音字母。示例 1 輸入 hello 輸出 holle 示例 2 輸入 leetcode 輸出 leotcede 說明 母音字母不包含字母 y 思路 使用雙指標法 如果遇到前面的指標和後面的指標都遇到母音則交換 class solution 如果作指標和右...