输入两个字符串s和t,判断时候可以从t中删除0个或者多个字符(其他字符顺序不变),得到字符串s。例如,abcde可以得到bce,但无法得到dc。
刚看到本题的主要思路是,暴力解法,就是从输入的两个字符串中依次比较,当某一位相同时,两个字符串都移到下一位,如果不相同则主序列移向下一位,与此同时,设置一个计数器,最后当计数器和子序列的长度相同时,则满足。
暴力代码如下:
#include
#include
#include
using namespace std;
const int maxn = 100010;
char str1[maxn];
char str2[maxn];
int main()
{
int i,j;
while(~scanf("%s%s",str1,str2))
{
int len1 = strlen(str1);
int len2 = strlen(str2);
for(i = 0, j = 0; i < len1 && j
还有可以使用C语言提供的库函数strchr(),方便快捷 代码如下:
#include
#include
#include
using namespace std;
const int maxn=1000005;
char a[maxn];
char b[maxn];
int main()
{
while(scanf("%s%s",a,b)!=EOF)
{
char *tb=b;
int len=strlen(a);
for(int i=0;i