天天看點

字元串反轉算法

## 問題:給定一個字元串,然後通過一定的算法進行反轉。如”jaghaoie”反轉之後為”eioahgaj” ##

解決方式:遞歸

解決思路:截取字元串第一個字元拼接到截取之後的字元串末尾,直到截取之後的字元串長度為0

用到的String類的方法:

  1. substring(int beginIndex, int endIndex)

    傳回一個字元串,該字元串是此字元串的子字元串。

  2. concat(String str)

    将指定的字元串連接配接到該字元串的末尾

/**
     *
     * @param val 需要反轉的字元串
     * @return 反轉之後的字元串
     */
    public static String reversal(String val){
        if(val.length() ==  || val == null){
            return "";
        }
        return reversal(val.substring(, val.length())).concat(val.substring(, ));
    }
           

優化:假如連續一段字元都一樣或者需要反轉的字元串都是同一字元,應該做怎樣的優化