LeetCode演算法題-Reverse String(Java實現)
阿新 • • 發佈:2018-12-24
這是悅樂書的第205次更新,第217篇原創
01 看題和準備
今天介紹的是LeetCode演算法題中Easy級別的第73題(順位題號是344)。編寫一個以字串作為輸入並返回字串的函式。例如:
輸入:“hello”
輸出:“olleh”
輸入:“A man, a plan, a canal: Panama”
輸出:“amanaP: lanac a, nalp a, nam A”
本次解題使用的開發工具是eclipse,jdk使用的版本是1.8,環境是win7 64位系統,使用Java語言編寫和測試。
02 第一種解法
直接藉助StringBuilder類的reverse方法,將原字串反轉。
public String reverseString(String s) {
StringBuilder sb = new StringBuilder(s);
return sb.reverse().toString();
}
03 第二種解法
使用雙指標,一個從0開始,一個從字串尾部開始,利用迴圈,進行首尾字元互換。
public String reverseString2(String s) { if (s == null || s.trim().length() <= 1) { return s; } int i = 0; int j = s.length()-1; char[] ch = s.toCharArray(); while (i < j) { char temp = ch[i]; ch[i] = ch[j]; ch[j] = temp; i++; j--; } return new String(ch); }
04 小結
演算法專題目前已連續日更超過兩個月,演算法題文章73+篇,公眾號對話方塊回覆【資料結構與演算法】、【演算法】、【資料結構】中的任一關鍵詞,獲取系列文章合集。
以上就是全部內容,如果大家有什麼好的解法思路、建議或者其他問題,可以下方留言交流,點贊、留言、轉發就是對我最大的回報和支援!