問題:
給一個字符串,判斷該字符串是否是回文。比如 abbc是回文,而abc不是。
思路一:直接在字符串的首尾兩端各放置一個指針*front和*back,然后開始遍歷整個字符串,當*front不再小于*back時完成遍歷。在此過程中,如果出現二者的值不相等,那么就表示不是回文串;如果兩個指針指向的字符始終相等就表示該字符串是回文字符串。 時間復雜度:O(n)
思路二:先使用快慢指針確定出字符串的中間位置,然后分別使用兩個指針從開中間位置開始向相反的方向掃描,直到遍歷完整個字符串。時間復雜度:O(n)
找中間位置的方法:
1、快慢指針;//可參見我的另一篇文章“快慢指針和其簡單應用”
2、一種有效的計算方法 //m定位到字符串的中間位置
兩種思路的代碼如下:綜上所述,雖然上面兩種方法采用不同的遍歷方式來掃描字符串,但是最終的時間復雜度都是一樣,效率基本上是一樣的。轉載自:http://blog.csdn.net/duan19920101/article/details/51481348新聞熱點
疑難解答