Uva1584-环状序列-Circular Sequence-字典序
来源:互联网 发布:手机淘宝货源一件代发 编辑:程序博客网 时间:2024/04/27 02:01
题目链接点这里
长度为n的环状串有n种表示方法,分别为从某个位置开始顺时针得到,在这些排列中字典顺序最小的称“最小表示”。
输入一个长度为n(n<=100)的环状DNA串(只包含A、G、C、T这四种字符)的一种表示法,你的任务是输出该环状串的最小表示。例如CTCC的最小表示为CCCT,CGAGTCAGCT的最小表示为AGCTCGAGTC。
分析:一般地,对于两个字符串,从第一的字符开始比较,当某一个位置的字符不同时,该位置字符较小的串,字典序小(例如,abc比bcd小);
如果一个字符串没有更多的字符,但是另一个字符串还没结束,则较短的字符串的字典序较小(例如,hi比history小)。
#include<stdio.h>#include<string.h>#define maxn 105// 环状串s的表示法i是否比表示法ans的字典序小bool less(const char* s, int i, int ans) { int n = strlen(s); for(int j = 0; j < n; j++) if(s[(i+j)%n] != s[(ans+j)%n]) return s[(i+j)%n] < s[(ans+j)%n] ? true : false; return false; // 相等}int main() { int T; char s[maxn]; scanf("%d", &T); while(T--) { scanf("%s", s); int ans = 0; int n = strlen(s); for(int i = 1; i < n; i++) if(less(s, i, ans)) ans = i; for(int i = 0; i < n; i++) putchar(s[(i+ans)%n]); putchar('\n'); } return 0;}
手动模拟!
阅读全文
0 0
- Uva1584-环状序列-Circular Sequence-字典序
- UVa1584 环状序列 (Circular Sequence)
- 环状序列(Circular Sequence, ACM/ICPC Seoul 2004, UVa1584)
- UVa1584 Circular Sequence(环状序列) (java版本)
- 环状序列(Circular Sequence, ACM/ICPC Seoul 2004, UVa1584)
- UVA 1584 - Circular Sequence(环状序列)(字典序)
- 《算法竞赛入门经典2ndEdition 》例题3-6 环状序列(Circular Sequence, Uva1584)
- Uva1508 Circular Sequence 环状序列
- UVa 1584 Circular Sequence(环状序列)
- 环状序列(UVa1584)
- UVa1584 - Circular Sequence
- UVA1584 - Circular Sequence
- uva1584 - Circular Sequence
- uva1584 Circular Sequence
- UVA1584 UVALive3225 Circular Sequence
- UVa1584 Circular Sequence
- UVa1584 - Circular Sequence
- UVa1584-Circular Sequence
- 【Redis笔记】4.Hash(H)
- jzoj 1676. 【USACO】iCow播放器 (Standard IO)
- 编译Microsoft caffe出错故障解决
- 破解版webstorm和激活码
- POJ 3125 Printer Queue 笔记
- Uva1584-环状序列-Circular Sequence-字典序
- Swift显示alert和promp confirmation
- hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
- WebUI发布自动化测试框架PhoenixAutotest
- BOOST-计时器-同步、异步(boost::asio::deadline_timer)
- 机器学习面试题
- 快速排序算法手工实现及qsort、sort运用
- 希望杯
- List books =new ArrayList();