OpenJudge - 18:验证子串

2024-04-04 00:52
文章标签 验证 18 子串 openjudge

本文主要是介绍OpenJudge - 18:验证子串,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

总时间限制: 

1000ms

内存限制: 

65536kB

描述

输入两个字符串,验证其中一个串是否为另一个串的子串。

输入

输入两个字符串, 每个字符串占一行,长度不超过200且不含空格。

输出

若第一个串s1是第二个串s2的子串,则输出(s1) is substring of (s2)
否则,若第二个串s2是第一个串s1的子串,输出(s2) is substring of (s1)
否则,输出 No substring。

样例输入

abc
dddncabca

样例输出

abc is substring of dddncabca

关键代码

方法一:

#include<stdio.h>
#include<string.h>
int main()
{char s1[200],s2[200];int k,m,a = 0,b = 0;gets(s1);gets(s2);if(strlen(s1)<=strlen(s2)){if(strstr(s2,s1)){printf("%s is substring of %s",s1,s2);return 0;}}else if(strlen(s1)>=strlen(s2)){if(strstr(s1,s2)){printf("%s is substring of %s",s2,s1);return 0;}}printf("No substring");return 0; 
}

方法二: 

#include<stdio.h>
#include<string.h>
int main()
{char s1[200],s2[200];int k,m,a = 0,b = 0;gets(s1);gets(s2);for(int i = 0;i<strlen(s2);i++){k = 0;m = i;if(s1[k] == s2[m]){while(s1[k] == s2[m]&&s1[k] != '\0'){k++;m++;}if(s1[k] == '\0'){a = 1;}}}for(int i = 0;i<strlen(s1);i++){k = 0;m = i;if(s2[k] == s1[m]){while(s2[k] == s1[m]&&s2[k] != '\0'){k++;m++;}if(s2[k] == '\0'){b = 1;}}}if(a == 1)printf("%s is substring of %s",s1,s2);else if(b == 1)printf("%s is substring of %s",s2,s1);elseprintf("No substring");return 0; 
}

这篇关于OpenJudge - 18:验证子串的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/874414

相关文章

opencv图像处理之指纹验证的实现

《opencv图像处理之指纹验证的实现》本文主要介绍了opencv图像处理之指纹验证的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、简介二、具体案例实现1. 图像显示函数2. 指纹验证函数3. 主函数4、运行结果三、总结一、

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图

Python实现数据清洗的18种方法

《Python实现数据清洗的18种方法》本文主要介绍了Python实现数据清洗的18种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录1. 去除字符串两边空格2. 转换数据类型3. 大小写转换4. 移除列表中的重复元素5. 快速统

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

poj2406(连续重复子串)

题意:判断串s是不是str^n,求str的最大长度。 解题思路:kmp可解,后缀数组的倍增算法超时。next[i]表示在第i位匹配失败后,自动跳转到next[i],所以1到next[n]这个串 等于 n-next[n]+1到n这个串。 代码如下; #include<iostream>#include<algorithm>#include<stdio.h>#include<math.

poj3261(可重复k次的最长子串)

题意:可重复k次的最长子串 解题思路:求所有区间[x,x+k-1]中的最小值的最大值。求sa时间复杂度Nlog(N),求最值时间复杂度N*N,但实际复杂度很低。题目数据也比较水,不然估计过不了。 代码入下: #include<iostream>#include<algorithm>#include<stdio.h>#include<math.h>#include<cstring

spoj705( 求不相同的子串个数)

题意:求串s的不同子串的个数 解题思路:任何子串都是某个后缀的前缀,对n个后缀排序,求某个后缀的前缀的个数,减去height[i](第i个后缀与第i-1 个后缀有相同的height[i]个前缀)。 代码如下: #include<iostream>#include<algorithm>#include<stdio.h>#include<math.h>#include<cstrin

C++ | Leetcode C++题解之第393题UTF-8编码验证

题目: 题解: class Solution {public:static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num &

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

easyui同时验证账户格式和ajax是否存在

accountName: {validator: function (value, param) {if (!/^[a-zA-Z][a-zA-Z0-9_]{3,15}$/i.test(value)) {$.fn.validatebox.defaults.rules.accountName.message = '账户名称不合法(字母开头,允许4-16字节,允许字母数字下划线)';return fal