问题描述
- POJ上判断是否为字符子串的问题
-
#include<iostream> #include<string> using namespace std; int main() { string s, t; while (cin >> s >> t) { int lens, lent, i, j; lens = s.size(); lent = t.size(); i = j = 0; while (i<lens) { while (j < lent && t[j] != s[i]) j++; if (j == lent) break; i++; } if (i == lens && lens!=lent) cout << "Yes" << endl; else cout << "No" << endl; } return 0; }
这是POJ上的1936题,判断s是否为t的子串,我试了好几次都没问题,但是提交上去
又不对;我以为s和t不能完全相同,于是在输出"Yes"的判断条件里面又加上了长度必须相等,但还是不对,有谁知道问题所在吗?
解决方案
H面试程序(11): 判断字符串是否包含子串问题
字符子串问题
字符子串问题
解决方案二:
对了,这道题目中,只要t中有s的全部字母,并且按顺序排列即可,换句话说可以中间插入,比如s=“THEJD”,t="oafoTngonsoHhfnoawhoEnvoJhgohD",
此时s也是t的子串
时间: 2024-09-21 07:49:01