有兩個字串\(s,t\),其中\(s\)只包含小寫字母以及 *,\(t\)只包含小寫字母。
你可以進行任意多次操作,每次選擇\(s\)中的乙個 *,將它修改為任意多個(可以是0個)它的前乙個字元。
請求出是否能將\(s\)修改為\(t\)。(\(t\leq 100,len\leq 3*10^4\))
考慮記錄\(t\)中連續的字母以及長度,考慮用\(s\)匹配,
\(s\)也是可以用一段連續的字母或星號匹配,如果當前匹配的字母不同
或者是\(s\)中的字母個數超過\(t\)中的字母個數(不能刪除)
又或者是不存在星號且兩段長度不相同均為無解,均不滿足以上條件才有解
#include #include #define rr register
using namespace std;
const int n = 30011;
char s1[n], s2[n];
int t, tot, len1, len2, j, a[n], b[n];
signed main()
for (rr int l = 1, r = 1; l <= len1; l = ++r)
if (s1[l] != '*')
if (j <= tot)
printf("no\n");
else
printf("yes\n");
}return 0;
}
字串模擬
現在有一些被簡單壓縮的字串,例如 a 120 代表120個a。對於字串acb 3 d 5 e相對於acbbbddddde 現在給你兩個字串cstring,nstring.乙個是被壓縮過的字串,另乙個沒有被壓縮。求nstring是否為cstring的子串,如果是輸出true,否則輸出false.cst...
字串 模擬
description submit statistics discussion 2.0 seconds 256 megabytes 易位構詞 anagram 指將乙個單詞中的字母重新排列,原單詞中的每個字母都出現有且僅有一次。例如 unce 可以被易位構詞成 ecnu 在某些情況下,要求重排而成的...
修改字串
將給定字串中連續出現3次的小寫字母替換為改小寫字母在字母表中的下乙個字母 z變為a 大寫字母和其他字元不處理,仍然保留。要求最終輸出的字串中不再存在任何連續出現3次的小寫字母。例如字串 atrcccert893 45ae 經過處理後應該為 atrdert893 45ae int changestri...