POJ 3617 Best Cow Line(字典序)

来源:互联网 发布:mac系统打符号 编辑:程序博客网 时间:2024/05/21 10:34

题目:

http://poj.org/problem?id=3617

题解:

1.按照字典序比较S和将S反转后的字符串S‘。

2.如果S较小,就从S的开头取出一个文字,追加到T的末尾。

3.如果S’较小,就从S的末尾取出一个文字,追加到T的末尾。

(来自《挑战程序设计竞赛》)

看了书,写不出比书中更好的题解了。

一样,代码要自己敲。

代码:

#include<stdio.h>int a[2000];void f(int n){int s=0;int e=n-1;int sum=0;while(s<=e){int left=1;for(int i=0;s+i<=e;i++){if(a[s+i]>a[e-i]){left=0;break;}if(a[s+i]<a[e-i]){left=1;break;}}if(left) printf("%c",a[s++]);else printf("%c",a[e--]);sum++;if(sum%80==0) printf("\n");//题目输出格式的要求}}int main(){int n;while(~scanf("%d",&n)){for(int i=0;i<n;i++){getchar();scanf("%c",&a[i]);}f(n);printf("\n");}return 0;}


0 0