链接:https://ac.nowcoder.com/acm/contest/328/A
来源:牛客网

题目描述:
Rabbit得到了一个字符串,她的好朋友xxx可以给这个字符串施加一次魔法。
魔法可以选择字符串的任一位置,并将该位置后面的所有字符水平拼接到串首。
例如:对于字符串abcde,可以通过施加魔法得到cdeab。
如果xxx通过施加魔法将字符串的字典序变得严格比之前的小,那么他将拿走这一字符串。
Rabbit想知道自己的字符串会不会被xxx拿走。

输入描述:
第一行一个整数n,表示字符串的长度。
接下来一行一个长度为n的只由小写字母组成的字符串。

输出描述:
如果Rabbit的字符串会被xxx拿走,输出“YES”。
否则输出“NO”。
(不输出引号)
示例1
输入
5
cdeab
输出
YES

说明
xxx可以把e之后的部分“ab”放到串首,得到abcde,字典序比cdeab小,故将拿走字符串。
示例2
输入
5
abcde
输出
NO
备注:
1≤n≤100000

字典序的说明:https://en.wikipedia.org/wiki/Alphabetical_order
出题人题解:

#include <cstdio>
#include <bits/stdc++.h>
#include <map>
#include <cstring>
#include <algorithm>
using namespace std;
#define mst(a,b) memset((a),(b),sizeof(a))
#define rush() int T;scanf("%d",&T);while(T--)typedef long long ll;
const int maxn = 100005;
const ll INF = 1e18;
const ll mod=1e9+7;
const double eps = 1e-9;char s[maxn];
char tmp[maxn];int find_min(char *s,int len)
{int i=0,j=1,k=0,t;while(i<len&&j<len&&k<len){t=s[(i+k)>=len?i+k-len:i+k]-s[(j+k)>=len?j+k-len:j+k];if(t==0)k++;else{if(t>0) i+=k+1;else j+=k+1;if(i==j) ++j;k=0;}}return (i<j?i:j);
}void get_temp(int len)
{int k=find_min(s,len);for(int i=0; i<len; i++){tmp[i]=s[(i+k)%len];}
}int main()
{int n;scanf("%d",&n);scanf("%s",s);get_temp(n);tmp[n]='\0';if(strcmp(s,tmp)==0) puts("NO");else puts("YES");
}

自己的问题:
刚看到这个问题时,简单以为判断字符串不是最小的就可以,然后测试即便都没通过。

解决后续。

心飘了十多天,希望能静下来好好码字吧

Rabbit的字符串相关推荐

  1. 牛客练习赛36 Rabbit的字符串(最小表示法)

    题目链接 题目描述 Rabbit得到了一个字符串,她的好朋友xxx可以给这个字符串施加一次魔法. 魔法可以选择字符串的任一位置,并将该位置后面的所有字符水平拼接到串首. 例如:对于字符串abcde,可 ...

  2. 牛客网 Rabbit的字符串

    题目描述 Rabbit得到了一个字符串,她的好朋友xxx可以给这个字符串施加一次魔法. 魔法可以选择字符串的任一位置,并将该位置后面的所有字符水平拼接到串首. 例如:对于字符串abcde,可以通过施加 ...

  3. 【leetcode】算法题记录(111-120)

    目录 二叉树最小深度 路径总和 路径总和 II 二叉树展开为链表 不同的子序列 填充每个节点的下一个右侧节点指针 填充每个节点的下一个右侧节点指针 II 杨辉三角 杨辉三角 II 三角形最小路径和 二 ...

  4. MySql查询(各种操作)

    文章目录 MySql查询 一.SELECT 1.基础用法 2.limit限制 3.order排序 3.Distinct 去重 4.where过滤 1.基本操作 **2.where操作符:** **3. ...

  5. [Python正则表达式] 字符串中xml标签的匹配

    现在有一个需求,比如给定如下数据: 0-0-0 0:0:0 #### the 68th annual golden globe awards #### the king s speech earns ...

  6. java 字符转化字符串_【转载】java字符串的各种编码转换

    来自:http://www.blogjava.net/rabbit/archive/2008/03/27/189009.html import java.io.UnsupportedEncodingE ...

  7. Spring Boot:使用Rabbit MQ消息队列

    综合概述 消息队列 消息队列就是一个消息的链表,可以把消息看作一个记录,具有特定的格式以及特定的优先级.对消息队列有写权限的进程可以向消息队列中按照一定的规则添加新消息,对消息队列有读权限的进程则可以 ...

  8. 【不同的子序列问题】面试官写个字符串要我求有多少个“bigsai“,我懵了

    原创公众号:bigsai 欢迎加入力扣打卡 文章已收录在 全网都在关注的数据结构与算法学习仓库 欢迎star 前言 一次面试官笑嘻嘻的问我一个问题,场景还原一下: 然后我把这个问题透彻的研究了一下,并 ...

  9. Rabbit寻宝记(1)

    Description Rabbit 为了寻宝来到了一个神秘森林,但是她却发现森林唯一入口的大门被锁上了. 大门上写着一个奇怪的字符串.字符串只由大写字母,小写字母,数字组成,且至少有一个非数字字符. ...

最新文章

  1. RabbitMQ之交换机的四种类型和属性
  2. SOLID 原则的可靠指南
  3. 《Reids 设计与实现》第十五章 集群(中)
  4. 马斯克“无家可归”!最后一套房产以3000万美元卖出 兑现“无房产”承诺
  5. Sharepoint 2007 用户信息管理总结(1) - 用户组和用户
  6. libvpx在windows下的编译
  7. python程序加密_Python简单的加密程序:如何循环Z回到A
  8. 小白用python处理excel文件-python处理excel文件
  9. 【深度学习】之Caffe的solver文件配置(转载自csdn)
  10. Atitit.线程 死锁 跑飞 的检测与自动解除 与手动解除死锁 java c# .net php javascript.
  11. ​越狱iOS必备神器Flex使用指南-屏蔽越狱检测的破解利器
  12. Argo CD系列视频图文版之Github 实现全自动化 CICD
  13. 毛永胜计算机教师,呼和浩特市小学信息技术学科基本功获奖教师展示课活动
  14. 常用Linux命令、文件操作解压缩相关、Linux命令大全、测试查询
  15. 固态硬盘为什么比机械硬盘快
  16. python日志处理(logging模块)
  17. 主板、CPU、显卡中字母的含义
  18. Windows三种文件系统:NTFS、FAT32、FAT16的区别
  19. Flink程序启动报错could not be determined automatically
  20. 【python中级】 FastDFS删除文件服务器上的文件

热门文章

  1. 【IOS开发高级系列】异步绘制专题
  2. 算法基础--梯度消失的原因
  3. 邮箱个性签名html模板,邮件个性签名大全_邮件的经典个性签名模板
  4. java面向对象高级特性 ---接口案例(学校中有教师和学生两类人,而在职研究生既是教师又是学生)
  5. python爬取付费漫画_Python爬虫---爬取腾讯动漫全站漫画
  6. 盘点国有银行发行数字人民币现状:正全面加速落地
  7. grep搜索特定文件
  8. vim tutorial 101 hacks(三)
  9. matlab 去高光,图像处理-去高光/直方图均衡
  10. 洛谷P3336 [ZJOI2013]话旧 题解