牛客多校第七场 A

图片说明
图片说明

  • 题意:
  • 给一个01构成的字符串,要把该字符串切分成最少的份数,使得每一个字符串都是循环移位
  • 字典序最小的字符串。
  • 111011110 -> 111 01111 0
  • 题解:
  • 从后往前遍历,暴力求是否满足
  • 代码:
    #include <bits/stdc++.h>
    using namespace std;
    #define ll long long
    bool ok(string s)
    {
      int l = s.length();
      for(int i=1;i<l;i++)
      {
          for(int j=0;j<l;j++){
              if(s[j] < s[(i+j)%l])
                  break;
              if(s[j] > s[(i+j)%l])
                  return false;
          }
      }
      return true;
    }
    int main()
    {
      int t;
      string s;
      scanf("%d",&t);
      while(t--)
      {
          cin>>s;
          int l = s.length();
          int i=0;
          while(i < l)
          {
              for(int j=l-i;j>0;j--)
              {
                  if(ok(s.substr(i,j))){
                      cout<<s.substr(i,j);
                      i+=j;
                      if(i < l)
                          cout<<" ";
                      break;
                  }
              }
          }
          cout<<endl;
      }
      return 0;
    }
    
全部评论

相关推荐

11-15 17:19
湖南大学 Java
成果成果成果果:这是哪个公司的hr,这么离谱吗,我没见过用性别卡技术岗的,身边女性同学拿大厂offer的比比皆是
点赞 评论 收藏
分享
11-03 14:38
重庆大学 Java
AAA求offer教程:我手都抬起来了又揣裤兜了
点赞 评论 收藏
分享
预计下个星期就能开奖吧,哪位老哥来给个准信
华孝子爱信等:对接人上周说的是这周
投递华为等公司10个岗位 >
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务