蓝杯十七

作者: 逍遥_9353 | 来源:发表于2017-12-30 09:46 被阅读27次

/*完美的代价

问题描述  回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。小龙龙认为回文串才是完美的。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。  

交换的定义是:交换两个相邻的字符  

例如mamad  

第一次交换 ad : mamda  

第二次交换 md : madma  

第三次交换 ma : madam (回文!完美!)

输入格式  第一行是一个整数N,表示接下来的字符串的长度(N <= 8000)  第二行是一个字符串,长度为N.只包含小写字母

输出格式  如果可能,输出最少的交换次数。  否则输出Impossible

样例输入

5

mamad

样例输出3*/

#include <stdio.h> 

#include <string.h>   

#define N 8000   

int main(void){     

int n;   

scanf("%d",&n);           

char a[N];     

scanf("%s",a);               

int i,j,t,l,p;     

j=n-1;     

int flag=0;     

int step=0;     

for(i=0;i<j;i++){         

t=j;          //查找匹配的字符         

while(a[i]!=a[t]){             

t--;          }         

char temp;         

if(i==t){  //如果为单个字符             

flag++;           

  if(n%2==0||flag>1){                 

printf("Impossible");                 

return 0;              }           

step+=n/2-i;                           

continue;  //如果不加该语句,则单个字符也会执行下面的if语句a[i]==a[t] && t==i         

}          //如果找到相匹配的两个数         

if(a[i]=a[t]){                       

step+=j-t;             

temp=a[t];             

for(l=t;l<j;l++)

{                  a[l]=a[l+1];              }             

a[l]=temp;             

j--;         

}   

}             

printf("%d",step);       

return 0;   

蓝杯十七 蓝杯十七 蓝杯十七

相关文章

  • 蓝杯十七

    /*完美的代价 问题描述回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。小龙龙认为回文串才是完美的。...

  • 蓝杯三十七

    算法提高 勾股数 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 勾股数是一组三个自然数,a...

  • 蓝杯四十七

    算法训练 筛选号码 时间限制:1.0s 内存限制:512.0MB 提交此题 问题描述 有n个人围成一圈,顺序排...

  • 蓝杯二十七

    /*算法训练 删除数组零元素 时间限制:1.0s 内存限制:512.0MB 提交此题 从键盘读入n个整数放入数...

  • 蓝杯二十

    /*数的读法 问题描述Tom教授正在给研究生讲授一门关于基因的课程,有一件事情让他颇为头疼:一条染色体上有成千上万...

  • 蓝杯十八

    /*矩形面积交 问题描述平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对...

  • 蓝杯四十

    算法训练 统计单词个数 时间限制:1.0s 内存限制:256.0MB 问题描述 给出一个长度不超过200...

  • 蓝杯十二

    一、/*分糖果 问题描述有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:每个小朋友都...

  • 蓝杯九

    /*阶乘计算 问题描述 输入一个正整数n,输出n!的值。其中n!=1*2*3*…*n。算法描述n!可能很大,而计算...

  • 蓝杯十三

    一、/*打印下述图案问题描述使用循环结构打印下述图形,打印行数n由用户输入。打印空格时使用"%s"格式,向prin...

网友评论

    本文标题:蓝杯十七

    本文链接:https://www.haomeiwen.com/subject/rpjggxtx.html