zoukankan      html  css  js  c++  java
  • 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("
    ");
    	}
    }
    int main()
    {
    	init();
    	result();
    }


     

  • 相关阅读:
    Java static修饰符小记
    nginx的使用
    Java 日期时间格式化
    Java Annotation使用详解
    栈的应用-四则运算表达式
    计算机网络——学习笔记
    Python __builtin__模块
    搭建Harbor私有库
    Prometheus k8s方式安装
    Day4_字典循环
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4017760.html
Copyright © 2011-2022 走看看