1 条题解
-
0
练70.1 验证子串
解题思路
先判断a是否在b中,若成立按第一条要求输出;否则再判断b是否在a中;都没有输出No substring。
正确性说明
依题目给出的对应关系逐项处理,位置与原输入保持明确对应。每一步完成当前项的全部贡献,结束后得到所有位置或字符的目标结果。
易错点
两串相同优先第一分支;输出实际串内容,不加括号。
复杂度
最坏时间O(|a||b|),空间O(|a|+|b|)。
参考代码(C++11)
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); string a, b; cin >> a >> b; if (b.find(a) != string::npos) cout << a << " is substring of " << b; else if (a.find(b) != string::npos) cout << b << " is substring of " << a; else cout << "No substring"; cout << "\n"; return 0; }
- 1