1. 程式人生 > >LeetCode演算法題-Reverse String(Java實現)

LeetCode演算法題-Reverse String(Java實現)

這是悅樂書的第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+篇,公眾號對話方塊回覆【資料結構與演算法】、【演算法】、【資料結構】中的任一關鍵詞,獲取系列文章合集。

以上就是全部內容,如果大家有什麼好的解法思路、建議或者其他問題,可以下方留言交流,點贊、留言、轉發就是對我最大的回報和支援!