碰到了好幾次回文判斷的題目,這一次下定決心解決了
我首先想到的問題是,從第乙個開始,一直往後判斷,判斷的方法是用乙個二維陣列,記錄兩個點,匹配成功以後,就一直向里,直到兩個碰面,記錄陣列的下標,遍歷完成以後,完成輸出(暴力法)
#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...