zoukankan      html  css  js  c++  java
  • HankerRank刷题第一天(string类型)

    一共做了三道题,前两道比较简单就不写出来了

    第三道虽然也是个简单题..但对于我这种小菜鸡来说..还是..写不出来的,在看了别人的代码之后知道了思路又自己写出来了。

    题目地址:https://www.hackerrank.com/challenges/two-characters

    大概意思就是给一个字符串,经过操作得到一个字符串是ABAB或者BABA类型的,只能有两个字母并且不能有相邻相同的。然后求最长的这种字符串

    如 beabeefeab 变成babab 长度为5

    题目给的字符串的最大长度是1000,当时想先去掉重复的,再看是否只有两种字符..但这样循环循环也不知道怎么让他停。

    看了别人的代码,才发现完全可以不用纠结这个1000,换一种思路:

    字母一共就26个,完全可以每一种搭配都试一下啊! 最多也就26*26的时间复杂度...

    思路:

    每一种搭配都拿出来放在一个新的字符串中

    看这个字符串是否符合没有相邻相同的要求,不符合继续循环,符合记录下长度继续循环

    等到循环结束,输出最大长度即可。

    #include <cstdio>
    #include <iostream>
    #include <string>
    #include <algorithm>
    #include <cmath>
    
    using namespace std;
    
    int main() {
         string s;
         int n;
         cin>>n;
         cin>>s;
         int result=0;
         for(char x='a';x<='z';x++)
         {
             for(char y='a';y<='z';y++)
             {
                 if(x!=y)
                 {
                     string P="";
                     for(int i=0;i<n;i++)
                     {
                         if(s[i]==x||s[i]==y)
                            P+=s[i];
                     }
                     bool flag=true;
                     for(int i=0;i<P.length()-1;i++)
                     {
                         if(P[i]==P[i+1])
                         {
                            flag=false;
                            break;
                         }
                     }
    
                     if(flag&&P.length()>1)
                     {
                         if(result<P.length())
                            result=P.length();
                     }
                 }
             }
         }
    
         cout<<result<<endl;
    
    }
  • 相关阅读:
    css 和 svg 实现蚂蚁行军效果
    ASP.NET Core使用Swagger实现接口文档并分组
    Centos7+DockerCompose部署ASP.NET Core3.1应用
    Centos7+Docker部署ASP.NET Core3.1应用
    ASP.NET Core下的Cache
    在asp.net web form项目中添加webapi接口
    windows服务中对外提供API接口
    ASP.NET Core使用log4net记录日志
    SSL踩坑ERR_SSL_VERSION_OR_CIPHER_MISMATCH
    C# 调用微信接口上传素材和发送图文消息
  • 原文地址:https://www.cnblogs.com/Qmelbourne/p/6730183.html
Copyright © 2011-2022 走看看