POJ3617 简单字符串
三分之一的通过率的字符串
题意为,输入一个S串,有一个空串T。对S串有两种操作,一是取出S串的头放入T串的尾,二是取出S串的尾放入T串的尾。要求是要使得T串的字典序最小。
从题意来看是一个很明显的贪心思路。那么想到这一步其实比较接近答案了,但是需要注意的一点是当S串的头和尾相同的时候,那么这个时候我们当然也希望取出更小的字符,所以就需要比较下一个字符。但是如果指向头和尾的指针都分别往里前进一位的时候,这俩字符还是相同,咋办?这个情形。。。对,就是回文字符串。形同“ABCDCBA”这样的字符串。这个时候是指针不断地往里走,判断为回文字串的时候,两头任意取下一个即可。还有一种情形是类似于这样的串:“ABCCBA”以及“ABCABA”。这些都需要我们把指针不断地移动到中间的时候才能够判断出应该先取哪边的字串才能保证T串的字典序最小。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <algorithm>
using namespace std;
const int maxn = +;
char s[maxn]; void solve(int n)
{
int i,l,r,cnt;
l = ;
r = n-;
for(cnt=; l<=r; cnt++)
{
bool left = false;
for(i=; l+i<=r; i++)
{
if(s[l+i] < s[r-i])
{
left = true;
break;
}
else if(s[l+i] > s[r-i])
{
left = false;
break;
}
if((l+i == r-i) && s[l+i] == s[r-i])
{
left = true;
break;
}
if((l+i+ == r-i) && s[l+i] == s[r-i])
{
left = true;
break;
}
}
//if(top == n-1) left = true;
if(left) putchar(s[l++]);
else putchar(s[r--]);
if(n % != )
if(cnt % == )
printf("\n");
}
} int main()
{
int n,i;
while(scanf("%d%*c",&n) == )
{
char x;
memset(s,,sizeof(s));
for(i=; i<n; i++)
{
scanf("%c%*c",&x);
s[i] = x;
}
s[i] = '\0';
solve(n);
}
return ;
}
POJ3617 简单字符串的更多相关文章
- CF 208A Dubstep(简单字符串处理)
题目链接: 传送门 Dubstep Time Limit: 1000MS Memory Limit: 32768 KB Description Vasya works as a DJ in t ...
- 第一部分之简单字符串SDS(第二章)
一,什么是SDS? 1.引出SDSC字符串:c语言中,用空字符结尾的字符数组表示字符串简单动态字符串(SDS):Redis中,用SDS来表示字符串.在Redis中,包含字符串值的键值对在底层都是由SD ...
- hdu 5059 简单字符串处理
http://acm.hdu.edu.cn/showproblem.php?pid=5059 确定输入的数是否在(a,b)内 简单字符串处理 #include <cstdio> #incl ...
- C 封装一个通用链表 和 一个简单字符串开发库
引言 这里需要分享的是一个 简单字符串库和 链表的基库,代码也许用到特定技巧.有时候回想一下, 如果我读书的时候有人告诉我这些关于C开发的积淀, 那么会走的多直啊.刚参加工作的时候做桌面开发, 服务是 ...
- 1442: Neo 的简单字符串(字符串)
1442: Neo 的简单字符串 时间限制: 10 Sec 内存限制: 128 MB 提交: 9 解决: 3 统计 题目描述 Neo 给你一系列字符串,请你输出字符串中的不同单词个数以及总单词个数. ...
- Java实验--关于简单字符串回文的递归判断实验
首先题目要求写的是递归的实验,一开始没注意要求,写了非递归的方法.浪费了一些时间,所谓吃一堑长一智.我学习到了以后看实验的时候要认真看实验中的要求,防止再看错. 以下是对此次的实验进行的分析: 1)递 ...
- python 简单字符串字典加密
1 def crypt(source,key): from itertools import cycle result='' temp=cycle(key) for ch in source: res ...
- 洛谷 简单字符串 'P1055ISBN号码' 问题
题目描述如下: 知识点①:char数组与int型数字进行运算时,需要将 char[i]-'0' .比如 char c[5]; int i; for(i=0;i<5;i++) scanf(&quo ...
- c# 进程间的通信实现之一简单字符串收发
使用Windows API实现两个进程间(含窗体)的通信在Windows下的两个进程之间通信通常有多种实现方式,在.NET中,有如命名管道.消息队列.共享内存等实现方式,这篇文章要讲的是使用Wi ...
随机推荐
- Java Topology Suite (JTS)与空间数据模型
JTS是Java的处理地理数据的API,它提供以下功能: 实现了OGC关于简单要素SQL查询规范定义的空间数据模型 一个完整的.一致的.基本的二维空间算法的实现,包括二元运算(例如touch和over ...
- 第k大值01背包问题
http://acm.hdu.edu.cn/showproblem.php?pid=2639 /* 第一行输入t 代表t组测试数据 第二行 输入物品个数 背包容量 要求的第k大值 物品的价值 物品的重 ...
- The game of life(生命游戏)新算法
我写了一种常见的实现算法,和另一种新算法,即不是每次循环计算每个细胞的周围细胞数来产生下一时刻,而是每次每个产生状态变化的细胞主动通知周围的邻居,因此每个细胞增加一个用来记录邻居数的字段.由邻居数决定 ...
- hdoj 1728 逃离迷宫
逃离迷宫 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- ab测试
PS:网站性能压力测试是性能调优过程中必不可少的一环.只有让服务器处在高压情况下才能真正体现出各种设置所暴露的问题.Apache中有个自带的,名为ab的程序,可以对Apache或其它类型的服务器进行网 ...
- 约瑟夫问题(Josephus Problem)的两种快速递归算法
博文链接:http://haoyuanliu.github.io/2016/04/18/Josephus/ 对,我是来骗访问量的!O(∩_∩)O~~ 约瑟夫问题(Josephus Problem)也称 ...
- Sql Server 2005 开发版亲測可用下载地址
sqlserver2005开发版下载地址:http://222.132.81.146/rj/cs_sql_2005_dev_all_dvd.rar建议使用迅雷下载. sql server 2005 开 ...
- 深入懂得android view 生命周期
作为自定义 view 的基础,如果不了解android view 的生命周期 , 那么你将会在后期的维护中发现这样那样的问题 ....... 做过一段时间android 开发的同学都知道,一般 on ...
- 在ASP.NET将程序中将上传的附件存储到另一台文件服务器上的实现
假定有两台服务器:A和B,其中A为Web服务器(IP:192.123.1.1, 为iis发布程序的服务器 ),B为文件服务器(IP: 192.123.2.2) 在文件服务器B中某个磁盘下创建一个共享文 ...
- HDU5327
#include <iostream> #include <stdio.h> #include <cstring> using namespace std; int ...