教你使用1行程式碼在Java中實現字串的逆序

喝水會長肉發表於2021-12-14

字串逆序,這是非常普遍的一道演算法面試題,相信很多刷過演算法題的朋友都一定對這個問題並不陌生。

這個問題有很多衍生問題,他的實現方式也有很多。今天,就來教大家一個程式碼行數最好的實現方式。

那就是使用遞迴的方式,用1行程式碼實現字串逆序。

程式碼如下:


public 
class 
MyClass 
{

    public static void main ( String args [ ] ) {

     System .out . println ( reverseString ( "Hollis is a Coder" ) ) ;
    }

    private static String reverseString ( String sentense )
        {
        return sentense . isEmpty ( ) ?  sentense : reverseString (sentense . substring ( 1 ) ) + sentense . charAt ( 0 ) ;
    }
}

輸出結果:

redoC a si silloH

如上,核心程式碼只有一行,那就是:

return sentense.isEmpty() ?  sentense : reverseString(sentense.substring(1)) + sentense.charAt(0);

這行程式碼中主要有兩個知識點,分別使用了三目運算子和遞迴。

  • 三目運算子

    • 對於條件表示式 b ? x : y,先計算條件b,然後進行判斷。如果b的值為true,計算x的值,運算結果為x的值;否則,計算y的值,運算結果為y的值。

  • 遞迴

    • 程式呼叫自身的程式設計技巧稱為遞迴( recursion)。遞迴做為一種演算法在程式設計語言中廣泛應用。 //java學習交流:737251827  進入可領取學習資源及對十年開發經驗大佬提問,免費解答!一個過程或函式在其定義或說明中有直接或間接呼叫自身的一種方法,它通常把一個大型複雜的問題層層轉化為一個與原問題相似的規模較小的問題來求解,遞迴策略只需少量的程式就可描述出解題過程所需要的多次重複計算,大大地減少了程式的程式碼量。

(全文完)



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70010294/viewspace-2847699/,如需轉載,請註明出處,否則將追究法律責任。

相關文章