zoukankan      html  css  js  c++  java
  • SDNU 1100.字符串查找(水题)

    Description

    给定两个字符串a、b,求b在a中出现的位置。

    Input

    第一行为一个字符串a,长度大于等于1小于等于100000。
    第二行为一个字符串b,长度大于等于1小于等于1000。

    Output

    一个整数,b在a中出现的位置,若b不是a的字串,输出-1。

    Sample Input

    abababc
    ababc

    Sample Output

    3
    #include <cstdio>
    #include <iostream>
    #include <string>
    #include <cstring>
    #include <cmath>
    #include <algorithm>
    #include <queue>
    #include <map>
    #include <vector>
    using namespace std;
    
    #define ll long long
    
    char a[100000+8],b[1000+8];
    
    int main()
    {
        scanf("%s", a);
        scanf("%s", b);
        int sign;
        bool flag;
        int len1 = strlen(a), len2 = strlen(b);
        for(int i = 0; i<len1-len2+1; i++)
        {
            flag = 0;
            int j;
            for(j = 0; j<len2; j++)
            {
                sign = i;
                if(a[i+j] == b[j])flag = 1;
                else
                {
                    flag = 0;
                    break;
                }
            }
            if(flag == 1 && j == len2)
            {
                printf("%d
    ", sign+1);
                break;
            }
        }
        if(flag == 0)printf("-1
    ");
        return 0;
    }
  • 相关阅读:
    BFPRT算法O(n)解决第k小的数
    Manacher练习
    KMP全家桶练习
    Codeforces Round #552 (Div. 3)
    Manacher's Algorithm
    poj 2559 (单调栈)
    单调队列
    单调栈
    multiset用法
    poj3660 Cow Contest(Floyd-Warshall方法求有向图的传递闭包)
  • 原文地址:https://www.cnblogs.com/RootVount/p/10946554.html
Copyright © 2011-2022 走看看