牛客——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 ...
随机推荐
- python重要函数eval
1.参数会作为一个 Python 表达式(从技术上说是一个条件列表)被解析并求值 >>> x = 1 >>> eval('x+1') 2 2.去除字符串两边的引号 ...
- 062、Java中的方法重载
01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...
- php中常用的加密函数
1.MD5加密: string md5 ( string $str [, bool $raw_output = false ] ) (1)md5()默认情况下以 32 字符十六进制数字形式返回散列值, ...
- 学生选课数据库MySQL语句练习题45道
1. 查询Student表中的所有记录的Sname.Ssex和Class列. select Sname,Ssex,Class from Student;2. 查询教师所有的单位即不重复的Depart列 ...
- lamp-module
要求: (1) 三者分离于两台主机: (2) 一个虚拟主机用于提供phpMyAdmin:另一个虚拟主机用于提供wordpress: (3) xcache (4) 为phpMyAdmin提供htt ...
- log4j配置文件——hibernate
log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j ...
- H5页面,华为手机打开不加载JS的问题
今天在做H5页面放在其他手机上面都可以刷出列表,但是就是放在华为手机上面刷不出来,怎么想都想不通,后面主管说华为手机的浏览器是严格遵守H5什么鬼东西的,然后其他浏览器做到比较好的,如果有报错就帮我们解 ...
- NO13 Linux的基础优化-关闭SELinux功能-Linux的7种运行级别-防火墙设置-中文显示设置
壹 安装Linux系统后调优及安全设置: 1 关闭SELinux功能: [root@localhost data]# sed 's#SELINUX=enforcing#SELINUX=disable ...
- use matplotlib to draw scatter plot
There are many pionts in this kind of table. How to do it? We can use scatter() to draw it. Code: im ...
- POJ 3735:Training little cats 联想到矩阵相乘
Training little cats Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 11208 Accepted: ...