牛客——Rabbit的字符串
题目:
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
题目描述
输入描述:
第一行一个整数n,表示字符串的长度。 接下来一行一个长度为n的只由小写字母组成的字符串。
输出描述:
如果Rabbit的字符串会被xxx拿走,输出“YES”。
否则输出“NO”。
(不输出引号)
输入
5
cdeab
输出
YES
说明
xxx可以把e之后的部分“ab”放到串首,得到abcde,字典序比cdeab小,故将拿走字符串。
输入
5
abcde
输出
NO
备注:
1≤n≤100000 字典序的说明:https://en.wikipedia.org/wiki/Alphabetical_order
分析:
第一次遇到这种题目,用的是字符串的最小表示法,我会单独写一篇博客介绍这个方法,这里我只介绍本题的做法。
首先,他给出的字典序的说明这个网站是不能用的,那么什么是字典序呢?
字典序按照我的理解就是像字典一样排版的序列,比如字典的第一页永远都是a开头的英文单词,如果遇到all和any这样的单词,他会根据第二位进行比较排序,如果第二位也一样就比较第三位以此类推直到表交出结果(不可能没有结果,如果没有就说明两个单词是一样的,ps:an和any肯定是an在前面)。
那么回到这道题目,如果xxx可以拿走这个字符串的条件就很明显了,他需要把字符串某一位置直到最后的字符串截取拼接到前面比如按来的大。比如abaab就可以拿走,而aabab则不可以。
abaab可以变成aabab,很明显要比原来的大,而aabab就是最大的排列方式了。
代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer; public class Main {
static StreamTokenizer cin = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
static String next() throws IOException {cin.nextToken();return cin.sval;}
static int nextInt() throws IOException {cin.nextToken();return (int)cin.nval;}
public static void main(String args[]) throws IOException {
int len=nextInt();
String s=next();
int res=res(s,len);
if(res==0)
System.out.println("NO");
else
System.out.println("YES");
}
public static int res(String c,int len) {
int i=0,j=1,k=0;
while(i<len&&j<len&&k<len) {
if(c.charAt((i+k)%len)==c.charAt((j+k)%len))
k++;
else if(c.charAt((i+k)%len)<c.charAt((j+k)%len)) {
j=j+k+1;
k=0;
}
else {
i=j+k;
j=i+1;
k=0;
}
}
return i;
}
}
牛客——Rabbit的字符串的更多相关文章
- 牛客比赛-假的字符串-Trie+拓扑
链接:https://www.nowcoder.com/acm/contest/59/B来源:牛客网 题目描述 给定n个字符串,互不相等,你可以任意指定字符之间的大小关系(即重定义字典序),求有多少个 ...
- 牛客 Rabbit的数列 (线段树维护值为x的个数+区间覆盖)
https://ac.nowcoder.com/acm/contest/907/C 链接:https://ac.nowcoder.com/acm/contest/907/C来源:牛客网 题目描述 Ra ...
- 牛客练习赛36 A Rabbit的字符串(字符串最小表示法)
链接:https://ac.nowcoder.com/acm/contest/328/A来源:牛客网 题目描述 Rabbit得到了一个字符串,她的好朋友xxx可以给这个字符串施加一次魔法. 魔法可以选 ...
- 牛客小白月赛3 B 躲藏【动态规划/字符串出现cwbc子序列多少次】
链接:https://www.nowcoder.com/acm/contest/87/B来源:牛客网 XHRlyb和她的小伙伴Cwbc在玩捉迷藏游戏 Cwbc藏在多个不区分大小写的字符串中. 好奇的X ...
- 牛客小白月赛4 B 博弈论 思维 字符串
链接:https://www.nowcoder.com/acm/contest/134/B来源:牛客网 题目描述 铁子和顺溜在学习了博弈论的sg函数之后,解决了很多很多博弈题,现在他们遇到了一道难题. ...
- 牛客小白月赛4 I 合唱队形 思维 字符串
链接:https://www.nowcoder.com/acm/contest/134/I来源:牛客网 题目描述 铁子的班级在毕业晚会有一个合唱节目,到了毕业晚会的时候,他们必须排成一排一起合唱&qu ...
- 牛客网暑期ACM多校训练营(第三场) E Sort String 哈希处理字符串(模板)
链接:https://www.nowcoder.com/acm/contest/141/E来源:牛客网 Eddy likes to play with string which is a sequen ...
- 【牛客练习赛53】A-超越学姐爱字符串
// 题目地址:https://ac.nowcoder.com/acm/contest/1114/A /* 找规律(碰运气) n:1 = 2 n:2 = 3 n:3 = 5 n:4 = 8 ... d ...
- 《剑指offer》字符串专题 (牛客11.01)
字符串的题目难度不一,涉及到的考点有字符串处理.字符串匹配(自动机.正则).模拟,以及递归.动态规划等算法. 难度 题目 知识点 ☆ 02. 替换空格 从后往前 ☆☆ 27. 字符串的排列 回溯,St ...
随机推荐
- 微信小程序-发送模板消息
1 添加一个小程序的消息模板,获取到模板id,存储到数据库中,方便以后修改调用 2. https://developers.weixin.qq.com/miniprogram/dev/api-back ...
- 收藏!阿里云maven镜像配置文件
<?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Soft ...
- mysql 数据库函数入门
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-zoom-in
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- POJ 3468 区间更新(求任意区间和)A Simple Problem with Integers
A Simple Problem with Integers Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 163977 ...
- C# 关于AD域的操作 (首博)
前段时间(因为懒得找具体的时间了)公司说让系统可以进行对AD域的操作,包括创建用户.于是上网查资料,了解何为AD域.还不知道的这边请https://www.cnblogs.com/cnjavahome ...
- Spring入门之四-------SpringIoC之其他知识点
一.懒加载 public class Bean1 { public Bean1() { System.out.println(this.getClass().getSimpleName() + &qu ...
- 前端解析返回的对象时json显示$ref问题的解决
在mapper中写的语句,结果集中association,采用的一个对象,整个list列表中每个元素有一个对象元素,如果第二个元素中有一个与第一个元素中对象同名的,就会去引用上一个元素的地址,在jso ...
- 一些linux基础命令
linux基本命令: mkdir -p a/b/c (-p 递归创建目录) tree a (a是文件名) :可以查看某个文件的文件结构(ps:a)创建一个.txt文件 touch 文件名.txt 批量 ...
- 指令——pwd
完整的指令的标准格式:Linux通用的格式 #指令主体(空格) [选项](空格) [操作对象] 一个指令可以包含多个选项,操作对象也可以是多个. 指令pwd: 用法:#pwd(print workin ...