消除字串

2021-08-18 23:51:14 字數 736 閱讀 2612

蒜頭君喜歡中心對稱的字串,即回文字串。現在蒜頭君手裡有乙個字串 s

s,蒜頭君每次都會進行這樣的操作:從 s

s 中挑選乙個回文的子串行,將其從字串 s

s 中去除,剩下的字元重組成新的字串 ss。

蒜頭君想知道,最少可以進行多少次操作,可以消除整個字串。

輸入一行。輸入乙個字串 s

s(1 \leq length(s) \leq 161≤

leng

th(s

)≤16

),字串均由小寫字母組成。

輸出一行,輸出乙個整數,表示消除整個字串需要的最少操作次數。

樣例輸入

abaccba

樣例輸出

2

解題說明:

ac**:

#include#include#include#includeusing namespace std;

const int inf=0x3f3f3f3f;

string st;

int judge(int x)

st2=st1;

reverse(st1.begin(),st1.end());

if(st1==st2)return 1;

return 0;

}int dp[70000];

int main()

cout

}

字串消除

給定乙個字串,僅由a,b,c 3種小寫字母組成。當出現連續兩個不同的字母時,你可以用另外乙個字母替換它,如 有ab或ba連續出現,你把它們替換為字母c 有ac或ca連續出現時,你可以把它們替換為字母b 有bc或cb 連續出現時,你可以把它們替換為字母a。你可以不斷反覆按照這個規則進行替換,你的目標是...

字串消除

題目詳情 給定乙個字串,僅由a,b,c 3種小寫字母組成。當出現連續兩個不同的字母時,你可以用另外乙個字母替換它,如 有ab或ba連續出現,你把它們替換為字母c 有ac或ca連續出現時,你可以把它們替換為字母b 有bc或cb 連續出現時,你可以把它們替換為字母a。你可以不斷反覆按照這個規則進行替換,...

字串消除

小hi最近在玩乙個字元消除遊戲。給定乙個只包含大寫字母 abc 的字串s,消除過程是如下進行的 1 如果s包含長度超過1的由相同字母組成的子串,那麼這些子串會被同時消除,餘下的子串拼成新的字串。例如 abccbcccaa 中 cc ccc 和 aa 會被同時消除,餘下 ab 和 b 拼成新的字串 a...