hdu 5414 CRB and String(贪心)

来源:互联网 发布:ajax json 提交 java 编辑:程序博客网 时间:2024/05/29 18:33

题目链接:hdu 5414 CRB and String


减掉两串开头部分相同的地方,并且如果开头部分不一样或者是t串的要比s串的长即为不可行(s=aabb,t=aaabb),后面部分分情况匹配,最后s串有剩即为不可行。


#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 1e5 + 5;char s[maxn], t[maxn];bool judge () {int ms = 1;while (s[ms-1] == s[ms]) ms++;int mt = 1;while (t[mt-1] == t[mt]) mt++;if (s[0] != t[0] || ms < mt) return false;int m = strlen(t), p = mt, bo = false;//char pre = s[ms-1];for (int i = mt; i < m; i++) {if (s[p] == t[i]) {//pre = s[ms];p++, bo = false;} else if (bo || t[i] != t[i-1]) {//pre = t[i];bo = true;} else {bo = false;}}//printf("!%c!\n", s[p]);return s[p] == '\0';}int main () {int cas;scanf("%d", &cas);while (cas--) {scanf("%s%s", s, t);printf("%s\n", judge() ? "Yes" : "No");}return 0;}


0 0
原创粉丝点击