poj3617Best Cow Line

poj3617Best Cow Line

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

题意大概是这样,给你一个字符串,你能够进行的操作是这种,
每次拿走这个串的第一个字母,或者最后一个字母,然后放到
一个新串的末尾(当然啦,新串一開始是为空的),当把旧串
里的全部字母拿掉,这个时候就形成了一个字母以及长度都跟
旧串一样的新串。如今要求使这个新串的字典序最小。

我的做法是用贪心,每次比較旧串的第一个和末尾的字母,谁小
就放在第一个。遇到两个字母同样的时候,就比較第二个字母和
倒数第二个字母,以此类推。直到找到两个不同的字母为止,假设
前面的小就输出旧串第一个字母,否则就输出末尾字母。

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

我的代码例如以下:

 

#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();
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118322.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java中Ajax学习「建议收藏」

    Java中Ajax学习「建议收藏」1.Ajax:异步js和xml异步刷新:如果网页中某一个地方需要修改,异步刷新可以使,只刷新该需要修改的地方,而页面其他中的地方保持不变。例如:百度搜索框,视频的点赞等实现(两种方式):Js:XMLHttpRequest对象XMLHttpRequest对象的方法:open(方法名【提交方式get或者post】,服务器地址,ture【是否选用异步刷新,99%都是ture】):与服务端建立连接send():get: send(null)post: send(参数值)setRequestHe

    2022年7月7日
    22
  • Qt图形视图体系结构

    导读:本文主要翻译自QT5.9.3GraphicsView官方文档一、GraphicsView框架简介QT4.2开始引入了Graphics View框架用来取代QT3中的Canvas模

    2021年12月29日
    52
  • 使用频谱分析仪测量微弱信号的3个步骤有哪些_频谱仪底噪怎么看

    使用频谱分析仪测量微弱信号的3个步骤有哪些_频谱仪底噪怎么看灵敏度决定了频谱仪测量微弱信号的能力。直接决定灵敏度的指标叫做频谱仪显示平均噪声电平(DANL),也称为底噪。降低频谱仪DANL有3个步骤

    2022年8月11日
    4
  • throw 和 throws 的区别?

    throw 和 throws 的区别?throw和throws的区别?throw:表示方法内抛出某种异常对象 如果异常对象是非RuntimeException则需要在方法申明时加上该异常的抛出即需要加上throws语句或者在方法体内trycatch处理该异常,否则编译报错 执行到throw语句则后面的语句块不再执行throws:方法的定义上使用throws表示这个方法可能抛出某种…

    2022年10月24日
    0
  • linux之路由知识之ip route 命令中的疑惑[通俗易懂]

    linux之路由知识之ip route 命令中的疑惑[通俗易懂]1.基础知识1.1路由(Routing)1.1.1路由策略(使用iprule命令操作路由策略数据库)基于策略的路由比传统路由在功能上更强大,使用更灵活,它使网络管理员不仅能够根据目的地址而且能够根据报文大小、应用或IP源地址等属性来选择转发路径。iprule命令:Usage:iprule[list|add|del]SELECTORACTION(ad…

    2022年7月18日
    20
  • Ubuntu 16.04 上安装 CUDA 9.0 详细教程

    Ubuntu 16.04 上安装 CUDA 9.0 详细教程前言:     本篇文章是基于之前安装CUDA7.5的经验写的,但因为最近更新TensorFlow到了r0.12版本,官方提示该版本TensorFlow和CUDA8.0&cudnnv5.1配合的最好,所以又卸了CUDA7.5,重新装了一遍CUDA8.0,安装的过程中发现了之前文档里的些许不足,于是做了稍许修改。

    2022年5月2日
    93

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号