小明的烦恼——找字符串
Problem description |
小明是个很优秀的同学,他除了特别公正外,他也很细心,当然老师肯定也知道,这不,老师又有事情找他帮忙了,老师每周都会给他一个字符串A,然后问小明“A字符串的循环移位产生的所有字符串中,字典序最小的是哪个”,于是小明屁颠屁颠的一个一个比对,但是长久下来,小明实在是受不了了,所以他想请你帮帮他。同样,你帮他解决,你就会多AC一个题目。 Hint: 如果A字符串为bcda,那么其所有的循环移位的新字符串有cdab,dabc,abcd,和他自己bcda一共四个,然后在这四个中,字典序最小的为abcd,那么输出这个字符串中的第一次字符在原字符串中的位置,为3,如果有多个结果,输出数字最小的。 |
Input |
输入有T组, 以后每组第一行有一个字符串S,长度<=5000000,都是小写字母。 |
Output |
对于每一个case,输出结果。 |
Sample Input |
|
Sample Output |
|
Problem Source |
HUNNU Contest |
#include<iostream>
#include<stdlib.h>
#include<string.h>
//#include<cstdin>
using namespace std;
const int N=5000000+10;
char a[N];
void solve(){int len=strlen(a);int i=0,j=1,k=0;while(i<len&&j<len&&k<len){
// printf("%d %d %d\n",i,j,len);int s= a[(i+k)%len]-a[(j+k)%len];if(s==0){k++;continue;}else if(s>0){i+=k+1;k=0;}else{j+=k+1;k=0;}if(i==j){j++;}}if(i<j){printf("%d\n",i);}else{printf("%d\n",j);}}
int main(){int n;
// freopen("in.txt","r",stdin);scanf("%d",&n);
// getchar();while(n--){scanf("%s",a);solve();}return 0;
}
注意取余
另外,每次比完之后,换一个新的位置继续比
有多余空格,最好不要用gets
小明的烦恼——找字符串相关推荐
- hunnu11543:小明的烦恼——分糖果
Problem description 小明在班里一直是个非常公正的孩子.这点同学和老师都非常清楚,这不,老师每周都会从家里带来一些糖果.然后叫小明把糖果分给其它小朋友,但这个班里的同学都有一个非 ...
- 小明历险记:规则引擎drools教程一
小明是一家互联网公司的软件工程师,他们公司为了吸引新用户经常会搞活动,小明常常为了做活动加班加点很烦躁,这不今天呀又来了一个活动需求,我们大家一起帮他看看. 小明的烦恼 活动规则是根据用户购买订单的金 ...
- HDU - 4511 小明系列故事——女友的考验(AC自动机+dp)
题目链接:点击查看 题目大意:小明在点 1 而小明的女朋友在点 n ,现在小明要去找女朋友,满足以下两个条件: 途径的序号满足严格递增 小明的女朋友给小明提出了 m 条路径是不允许走的 在满足上述两条 ...
- 小明系列问题――小明序列(LIS)
小明系列问题――小明序列 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit ...
- hdu4521 小明系列的问题——小明序列(LIS变种 (段树+单点更新解决方案))
链接: huangjing 题目:中文题目 思路: 1:这个题目假设去掉那个距离大于d的条件,那么必定是一个普通的LIS.可是加上那个条件后就变得复杂了.我用的线段树的解法. . .就是採用延迟更新的 ...
- HDU 4521 小明系列问题——小明序列 LIS+动态规划
HDU 4521小明系列问题--小明序列 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u ...
- 赛码网: 小明很喜欢打字,今天小红给了小明一个字符串。
题目 时间限制: 3000MS 内存限制: 589824KB 题目描述: 小明很喜欢打字,今天小红给了小明一个字符串. 这个字符串只包含大写和小写字母. 我们知道,按下CapsLock键,可以切换大小 ...
- 小明拿了一百块钱买了三块钱的东西,老板找他97块钱, 请问,老板有多少种找法(1元,五元,十元,20元,50元)
public class Test08{ /** 小明拿了一百块钱买了三块钱的东西,老板找他97块钱,请问,老板有多少种找法(1元,五元,十元,20元,50元)*/public static void ...
- 2021-12-08:扑克牌中的红桃J和梅花Q找不到了,为了利用剩下的牌做游戏,小明设计了新的游戏规则: 1) A,2,3,4....10,J,Q,K分别对应1到13这些数字,大小王对应0; 2) 游
2021-12-08:扑克牌中的红桃J和梅花Q找不到了,为了利用剩下的牌做游戏,小明设计了新的游戏规则: A,2,3,4-10,J,Q,K分别对应1到13这些数字,大小王对应0; 游戏人数为2人,轮流 ...
最新文章
- kubernetes 清理日志命令_Kubernetes之容器数据写满磁盘解决方法
- fedora25安装virtualbox虚拟机
- matlab遗传算法无人机问题,基于改进遗传算法的无人机路径规划
- FeignClient调用服务及上传文件的注意点及问题
- 高并发编程_高并发编程系列:全面剖析Java并发编程之AQS的核心实现
- LeetCode(944)——删列造序(JavaScript)
- Codeforces Round #666 (Div. 2)D. Stoned Game(博弈问题)
- bzoj1042硬币购物
- Android 从相冊获取近期拍摄的多张照片(获取相机拍照所存储的照片)
- React Natvie Fetch工具类
- Java基础——集合List+Set+泛型+Map
- JAVA获取word书签内容_Java 操作Word书签(一):添加、删除、读取书签
- WSL2 网络异常排查 [ping 不通、网络地址异常、缺少默认路由、被宿主机防火墙拦截]
- 计算机网络之网络安全基础-消息完整性与数字签名
- 我们是怎么简单打开百度的?
- python代码编辑器
- 我的世界服务器皮肤显示怎么用,我的世界皮肤站怎么用 皮肤站使用方法介绍...
- [oeasy]python0125_汉字打印机_点阵式打字机_汉字字形码
- excel智能提取_Excel智能艺术家谱
- 关于中断的分类和优先级(优先级由高到低排序)