zoukankan      html  css  js  c++  java
  • 串的模式匹配

    题目描述

    对于两个字符串A,B。请设计一个高效算法,找到B在A中第一次出现的起始位置。若B未在A中出现,则返回-1。

    给定两个字符串AB,及它们的长度lenalenb,请返回题目所求的答案。

    测试样例:
    "acbc",4,"bc",2
    返回:2
    class StringPattern {
    public:
        int findAppearance(string A, int lena, string B, int lenb) {
            // write code here
            if(lena<lenb) return -1;
            int count=0;
            for(int i=0;i<lena-lenb+1;i++)
                if(A[i]==B[0]) {
                	if(A.substr(A[i],lenb)==B) {
                   		return i;
            			break; 
                    }
                }
                
           return -1;
        }
    };
    

      段错误:您的程序发生段错误,可能是数组越界,堆栈溢出(比如,递归调用层数太多)等情况引起
    terminate called after throwing an instance of 'std::out_of_range'
    what(): basic_string::substr

    class StringPattern {
    public:
        int findAppearance(string A, int lena, string B, int lenb) {
            // write code here
           return A.find(B);
        }
    };
    

      

    class StringPattern {
    public:
        int findAppearance(string A, int lena, string B, int lenb) {
            // write code here
            for(int i=0; i<=lena-lenb; i++) {
                int j = 0;
                for(; j<lenb; j++) {
                    if(A[i+j] != B[j])
                        break;
                }
                if(j == lenb)
                    return i;
            }
            return -1;
        }
    };
    

      

    拥抱明天! 不给自己做枷锁去限制自己。 别让时代的悲哀,成为你人生的悲哀。
  • 相关阅读:
    不安装oracle客户端也可以使用pl/sql developer
    C语言I博客作业08
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业05
    c语言第一次作业1
    C语言I博客作业04
    C语言I博客作业03
    C语言I博客作业02,
    ASP.NET url重写与图片防盗链 I
  • 原文地址:https://www.cnblogs.com/dd2hm/p/7259957.html
Copyright © 2011-2022 走看看