NUC1657 All in All【字符串匹配】

AllinAll字符串匹配解析
本文介绍了一个新的加密技术验证方法,通过判断一个字符串是否为另一个字符串的子序列来检查消息编码的有效性。提供了问题描述、输入输出示例及AC的C++程序实现。

All in All

时间限制: 1000ms 内存限制: 30000KB
通过次数: 1总提交次数: 1
问题描述
You have devised a new encryption technique which encodes a message by inserting between its characters randomly generated strings in a clever way. Because of pending patent issues we will not discuss in detail how the strings are generated and inserted into the original message. To validate your method, however, it is necessary to write a program that checks if the message is really encoded in the final string.

Given two strings s and t, you have to decide whether s is a subsequence of t, i.e. if you can remove characters from t such that the concatenation of the remaining characters is s.
输入描述
The input contains several testcases. Each is specified by two strings s, t of alphanumeric ASCII characters separated by whitespace.The length of s and t will no more than 100000.
输出描述
For each test case output "Yes", if s is a subsequence of t,otherwise output "No".
样例输入
sequence subsequence
person compression
VERDI vivaVittorioEmanueleReDiItalia
caseDoesMatter CaseDoesMatter
样例输出
Yes
No
Yes
No
来源
Ulm Local 2002


问题分析:(略)

这个问题和《UVA10340 POJ1936 ZOJ1970 All in All【字符串匹配】》是同一个问题,代码拿过来用就AC了。

程序说明:参见参考链接。

参考链接:UVA10340 POJ1936 ZOJ1970 All in All【字符串匹配】

题记:程序做多了,不定哪天遇见似曾相识的。



AC的C++程序如下:

/* UVA10340 POJ1936 ZOJ1970 All in All */

#include <stdio.h>
#include <string.h>

#define MAXN 110000

char s[MAXN], t[MAXN];

int delstrcmp(char *s, char *t)
{
    int i, j, slen, tlen;

    slen = strlen(s);
    tlen = strlen(t);

    for(i=0, j=0; i<slen && j<tlen;) {
        if(s[i] == t[j]) {
            i++;
            j++;
        } else
            j++;
    }

    return i == slen;
}

int main(void)
{
    while(scanf("%s%s", s, t) != EOF)
        printf("%s\n", delstrcmp(s, t) ? "Yes" : "No");

    return 0;
}




转载于:https://www.cnblogs.com/tigerisland/p/7563677.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值