• (算法)判断字符串中是否包含HelloWorld


    题目:

    给定某字符串,判断该字符串中是否包含HelloWorld,出现HelloWorld不一定要连续,但顺序不变,如“HeByello,ByeWorByeld”就包含“HelloWorld”。

    思路:

    通过i,j来遍历两个字符串str1,str2(HelloWorld),假设长度分别为m,n;

    当i>m或者j>n,则不包含;

    当i<m且j==n-1,且str1[i]==str2[j],则包含;

    当i<m且j<n,如果str1[i]==str2[j],i++,j++;否则,i++;

    可以通过递归来实现,也可以通过循环来实现,详见代码。

    代码:

    #include<iostream>
    
    using namespace std;
    
    void IsHelloWorld(string word1,string word2,int i,int j,bool &flag){
        int m=word1.size();
        int n=word2.size();
    
        if(i>=m || j>=n)
            return;
        
        if(j==n-1){
            if(word1[i]==word2[j])
                flag=true;
        } 
    
        else if(word1[i]==word2[j])
            IsHelloWorld(word1,word2,i+1,j+1,flag);
            
        else 
            IsHelloWorld(word1,word2,i+1,j,flag);
    }
    
    
    bool IsHelloWorld_Recursive(string word1,string word2){
        int m=word1.size();
        int n=word2.size();
        if(m<n)
            return false;
        
        bool flag=false;
        IsHelloWorld(word1,word2,0,0,flag);
    
        return flag;
    }
    
    bool IsHelloWorld(string word1,string word2){
        int m=word1.size();
        int n=word2.size();
    
        int i=0;int j=0;
        while(i<m && j<n){
            if(j==n-1){
                if(word1[i]==word2[j])
                    return true;
            }
            else if(word1[i]==word2[j]){
                i++;
                j++;
            }
            else
                i++;
        }
        return false;
    }
    
    int main(){
        string word1="HeMylloHelloNameWorIsldHAHA";
        string word2="HelloWorld";
    
        cout<< IsHelloWorld_Recursive(word1,word2) <<endl;
        cout<< IsHelloWorld(word1,word2) <<endl;
    
        return 0;
    }
  • 相关阅读:
    iOS 9适配系列教程:后台定位
    入行几年后,互联网人的未来应该在哪里?
    iOS iOS8注册通知
    Warning!程序员们小心被技术绑架
    2015 Objective-C 三大新特性
    怎么面试架构师
    移动Web资源整理
    利用微信提高APP下载的3个推广方式!
    Audio Session Programming Guide
    iOS 设计
  • 原文地址:https://www.cnblogs.com/AndyJee/p/4789994.html
Copyright © 2020-2023  润新知