zoukankan      html  css  js  c++  java
  • 病毒感染监测

    #include<iostream>
    #include<string>
    #include<cstring>
    using namespace std;//s的第一个字符和t比较,不相等就和第二个比较,如果一旦有不相等的就继续比较,设置一个标记,如果一直没有就更新一下s的顺序
    
    void change(string &s,int &count)
    {
        int length;
        length = s.size();
        char a = s[0];
        for (int i = 1; i < length; i++)
        {
            s[i - 1] = s[i];
        }
        s[length - 1] = a;
        count++;
    }
    bool Judge(string s, string t)
    {
        int flag=0;
        int count=0;//当count比s的长度大的时候,如果依然没找到就输出no;
        int length = s.size();
        int ll = t.size();
        while (1)
        {
                int i=0, j = 0;
                int tt = 0;
                while (j!=ll)
                {
                    if (s[i] == t[j])
                    {
                        i++;
                        j++;
                        if (i-1== 0)
                        {
                            tt = j-1;
                            continue;
                        }
                        if (i-1== length - 1)
                        {
                            flag = 1;
                            break;
                        }
                    }
                    else
                        if (s[i] != t[j])
                        {
                            if (i == 0)
                            {
                                j++;
                                continue;
                            }
                            else  
                                if (i != 0)
                                {
                                    i = 0;
                                    j = tt + 1;
                                    continue;
                                }
                        }
                }
                if (flag == 1)
                    break;
                else
                    if (count < length)
                    {
                        
                        change(s, count);
                    }
                    else
                        break;
        }
        if (flag == 1)
            return true;
        else
            return false;
    }
    int main()
    {
        string s, t;
        while (cin >> s >> t && (s != "0" || t != "0"))
        {
            if (Judge(s, t))
                cout << "YES" << endl;
            else
                cout << "NO" << endl;
            
        }
        return 0;
    }

    错误原因:

    1、一开始循环弄错了,导致死循环

    2、count没有加上引用符,还是导致死循环了

    思路:

    1、首先写一个子函数用来改变病毒字符串的顺序

    2、flag标记是否有相同的

    3、有过病毒字符串有连续几个和人的一样,但下一个不一样,需要一个tt来记住第一个i相等的时候,j的大小

  • 相关阅读:
    adb monkey测试 命令
    大数据 入门
    代码设计模式 编写思想 架构
    汉化 android studio
    电脑时间显示秒 win10电脑显示农历
    Restful api介绍
    Map工具系列-03-代码生成BySQl工具使用说明
    win10 office2013激活工具
    win10 1607 密匙
    .net社区
  • 原文地址:https://www.cnblogs.com/h694879357/p/11770070.html
Copyright © 2011-2022 走看看