HDU 5414
来源:互联网 发布:linux进去数据库命令 编辑:程序博客网 时间:2024/05/24 05:47
题意:
给定串 S1,S2,要求判断S1是不是可以通过在原串任意字符后插入与该字符不同的字符得到S2。
若没有不同这个条件,直接判断S1是不是S2的子串即可。
若s1 是s2 的子串,我们可以对比他们的第一个字母所延伸的长度。
若s1[0] != s2[0 ] 一定不可以。
如aaaabb.....
aaaaaab...这样的是不可以的,这意味着必须在一些a的后面插入a才能得到S2
如aaaaaaabb.....
aaaaaab...这样的是可以的(s1首字母延伸长>=s2首字母延伸长)
之后s2中必定存在这样的形式( s1 为 apple ) : a xyatwtyp p xtytydcppp p teqrrwww l ... e这样就一定可以构造出S2
#include<cstring>#include<cstdio>#include<algorithm>#include <iostream>using namespace std;const int N = 1e5+100;char s1[N],s2[N];int judge(){ int n=strlen(s1),m=strlen(s2); if(n > m) return 0; int i=0,j=0; for(;j<m&&i<n;j++) if(s2[j]==s1[i]) i++; if(i<n) return 0; i=0,j=0; while(i<n&&s1[i]==s1[0]) i++; while(j<m&&s2[j]==s2[0]) j++; return (i>=j && s1[0]==s2[0]);}int main(){ int T; scanf("%d",&T); while(T--){ scanf("%s %s",s1,s2); printf("%s\n",judge() ? "Yes":"No"); } return 0;}
0 0
- HDU 5414
- HDU 5414 字符串
- hdu
- hdu
- HDU
- hdu ()
- hdu
- hdu
- HDU
- HDU
- hdu
- hdu
- HDU
- Hdu
- hdu
- hdu-
- hdu
- hdu
- 我的GVIM配置文件
- Linux下JNI实现
- LeetCode Binary Tree Zigzag Level Order Traversal
- 职业规划
- 互联网+的困局
- HDU 5414
- Attribute在.net编程中的应用(一)
- Attribute在.net编程中的应用(二)
- HDU 5363 Key Set
- Attribute在.NET编程中的应用(三)
- LintCode 最长单词
- Attribute在.NET编程中的应用(四)
- Attribute在.NET编程中的应用(五)
- 8.20学习总结