week5-[字符数组]查找

week5-[字符数组]查找

题目描述

给定两个只包含小写字母的字符串 a,ba,ba,b,请问 bbb 是否在 aaa 中出现过?

输入格式

输入共 222 行。

第 111 行 111 个只包含小写字母的字符串 aaa。

第 222 行 111 个只包含小写字母的字符串 bbb。

输出格式

输出共 111 行表示答案。如果出现过,输出 YES,否则输出 NO`。

样例 #1

样例输入 #1

复制代码
helloworld
owo

样例输出 #1

复制代码
YES

样例 #2

样例输入 #2

复制代码
abcdcaa
da

样例输出 #2

复制代码
NO

提示

数据范围

对于所有数据,a,ba,ba,b 的长度都不超过 100010001000。

方法一:用 string.find (最简单)

c++ 复制代码
#include <bits/stdc++.h>
using namespace std;

int main() {
    string a, b;
    cin >> a >> b;
    if (a.find(b) != string::npos) cout << "YES\n";
    else cout << "NO\n";
    return 0;
}

方法二:自己写子串查找(纯数组思路)

c++ 复制代码
#include <bits/stdc++.h>
using namespace std;

int main() {
    char a[1010], b[1010];
    cin >> a >> b;
    int n = strlen(a), m = strlen(b);
    bool ok = false;

    for (int i = 0; i + m <= n; i++) {
        bool match = true;
        for (int j = 0; j < m; j++) {
            if (a[i + j] != b[j]) {
                match = false;
                break;
            }
        }
        if (match) {
            ok = true;
            break;
        }
    }

    cout << (ok ? "YES" : "NO") << "\n";
    return 0;
}
相关推荐
夜思红尘2 小时前
算法--双指针
python·算法·剪枝
散峰而望3 小时前
【算法竞赛】C++函数详解:从定义、调用到高级用法
c语言·开发语言·数据结构·c++·算法·github
CoderCodingNo3 小时前
【GESP】C++五级真题(贪心思想考点) luogu-B4071 [GESP202412 五级] 武器强化
开发语言·c++·算法
我有一些感想……3 小时前
An abstract way to solve Luogu P1001
c++·算法·ai·洛谷·mlp
前端小L3 小时前
双指针专题(三):去重的艺术——「三数之和」
javascript·算法·双指针与滑动窗口
智者知已应修善业4 小时前
【求等差数列个数/无序获取最大最小次大次小】2024-3-8
c语言·c++·经验分享·笔记·算法
LYFlied4 小时前
【每日算法】LeetCode 416. 分割等和子集(动态规划)
数据结构·算法·leetcode·职场和发展·动态规划
多米Domi0115 小时前
0x3f 第19天 javase黑马81-87 ,三更1-23 hot100子串
python·算法·leetcode·散列表
..过云雨5 小时前
17-2.【Linux系统编程】线程同步详解 - 条件变量的理解及应用
linux·c++·人工智能·后端
历程里程碑5 小时前
滑动窗口最大值:单调队列高效解法
数据结构·算法·leetcode