POJ3617 Best Cow Line

其实是学习参考了算法书的代码,但仍然是我自己写的,有小差别。贪心类型。

 1 #include <iostream>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     int i,n;
 7     char str[2000+1];
 8 
 9     scanf("%d",&n);
10     for(i=0;i<n;i++)
11         cin>>str[i];
12 
13     int s=0,e=n-1;    //首尾位置
14 
15     for(i=1;i<n;i++)
16     {
17         int ts=s,te=e;
18         for(;ts+1<te-1 && str[ts]==str[te];ts++,te--)    //找出要判断字符的位置
19             ;
20 
21         if(str[ts]<str[te])
22             putchar(str[s++]);
23         else    //str[ts]>str[te],和ts+1>=te-1的情况,这时取首尾都可以
24             putchar(str[e--]);
25 
26         if(i%80==0) putchar('\n');
27     }
28     
29     putchar(str[s]);    //s==e,即最后一个字符
30     return 0;
31 }
Best.cpp

 

posted @ 2013-08-10 20:05  ZackCoder  阅读(164)  评论(0编辑  收藏  举报