對給定的字串,要求你輸出最長對稱子串的長度

2021-10-02 18:53:40 字數 893 閱讀 4072

碰到了好幾次回文判斷的題目,這一次下定決心解決了

我首先想到的問題是,從第乙個開始,一直往後判斷,判斷的方法是用乙個二維陣列,記錄兩個點,匹配成功以後,就一直向里,直到兩個碰面,記錄陣列的下標,遍歷完成以後,完成輸出(暴力法)

#include

using

namespace std;

string longestpalindrome

(string &s)

if(tmp1 >= tmp2 && j - i +

1> maxlen)}}

cout<<

"最長的回文數"

<<

(maxlen-start)

substr

(start, maxlen);}

intmain()

還有一種方法是從中間遍歷(空格也算,你可以用乙個if判斷去掉空格)

#include

#include

using

namespace std;

string longestpalindrome

(string& s)if(

(maxlen - start)

> sum)}}

cout <<

"最長的回文數"

<< sum-

1<< endl;

//return s.substr(start, maxlen);

return s.

substr

(start1+

1, maxlen1);}

intmain()

好了,就介紹到這裡,演算法的時間複雜度都是n的三次方。

對給定字串求所有的組合

輸入字串,輸出所有的組合,比如輸入abc,輸出 a b c ab ac bc abc。題目解法 abc用01串表示,001表示輸出c,111表示輸出abc,解法如下。空間複雜度n,時間複雜度為2 n 1,因為有這麼多種結果啊。package combination author administra...

cstdio對字串的輸入輸出

int puts const char str int fputs const char str,file stream 將str複製到緩衝區中,並且都不會將最後的null字元複製.char gets char str char fgets char str,int num,file stream ...

對字串切片

字串 和 unicode字串 u 也可以看成是一種list,每個元素就是乙個字元。因此,字串也可以用切片操作,只是操作結果仍是字串 abcdefg 3 abc abcdefg 3 efg abcdefg 2 aceg 在很多程式語言中,針對字串提供了很多各種擷取函式,其實目的就是對字串切片。pyth...