题意大概是这样,给你一个字符串,你能够进行的操作是这种,

每次拿走这个串的第一个字母,或者最后一个字母,然后放到

一个新串的末尾(当然啦,新串一開始是为空的),当把旧串

里的全部字母拿掉,这个时候就形成了一个字母以及长度都跟

旧串一样的新串。如今要求使这个新串的字典序最小。

我的做法是用贪心,每次比較旧串的第一个和末尾的字母,谁小

就放在第一个。遇到两个字母同样的时候,就比較第二个字母和

倒数第二个字母,以此类推。直到找到两个不同的字母为止,假设

前面的小就输出旧串第一个字母,否则就输出末尾字母。

假设都是同样的字母的话呢,随便输出哪个就好了。

我的代码例如以下:

#include<cstdio>
int num;
char cs[2010];
void init()
{
char tmp[2];
int i;
scanf("%d",&num);
for(i=0;i<num;i++)
{
scanf("%s",tmp);
cs[i]=tmp[0];
}
}
void result()
{
bool flag=1;
int sum,l,r,i;
l=sum=0;
r=num-1;
while(l<=r)
{
for(i=0;l+i<r-i;i++)
if(cs[l+i]<cs[r-i])
{
flag=1;
break;
}
else if(cs[l+i]>cs[r-i])
{
flag=0;
break;
}
if(flag)
{
putchar(cs[l]);
l++;
}
else
{
putchar(cs[r]);
r--;
}
sum++;
if(sum%80==0)
printf("\n");
}
}
int main()
{
init();
result();
}

最新文章

  1. protobuf学习(2)-相关学习资料
  2. 电子科技大学第八届ACM趣味程序设计竞赛第四场(正式赛)题解
  3. 杭电1003 MAX SUN
  4. Hibernate内存溢出分析一例
  5. 转载:看c++ primer 学习心得
  6. C#解析.msg文件(outlook文件)
  7. Java-String之寻根问底
  8. .net core 使用DES加密字符串
  9. iOS 十六进制的相加取反
  10. Linux 网络配置(固定IP)
  11. psacct监视用户执行的命令,如cpu时间和内存战胜,实时进程记账
  12. jeecg关闭当前iframe
  13. Python网络数据采集2-wikipedia
  14. [Ynoi2018]末日时在做什么?有没有空?可以来拯救吗?
  15. iptables-snat-dnat-设置
  16. vs添加github代码库
  17. 汇编 REPNE/REPNZ指令,SCASW指令,SCASD指令,SCAS指令
  18. mongo批量操作存在更新否则插入
  19. Eclipse中执行Maven命令时控制台输出乱码
  20. http-equiv制作跳转欢迎页面

热门文章

  1. Going Home(最大匹配km算法)
  2. 十:Java之泛型
  3. .NET通用权限系统快速开发框架源代码
  4. Service初步了解
  5. dhtmlx之dhtmlXGrid显示数据 --大数据
  6. java实现文件夹(包括其中的子文件夹、子文件)的复制——递归
  7. Android面试题整理(1)
  8. java.lang.IllegalStateException: No data type for node: org.hibernate.hql.ast.tree.MethodNode(尼玛,蛋疼的错误)
  9. LGPL与闭源程序
  10. Qt学习:线程间共享数据(使用信号槽传递数据,必须提前使用qRegisterMetaType来注册参数的类型)