题目描述:

女神最喜欢字符串了,字符串神马的最有爱了。

女神是一个重度强迫症患者,面对不是对称的东西,她会觉得太违和了,就会爆炸。所以她手上的字符串都是回文的,像什么a,b,aabaa,abcba,上海自来水来自海上...等等。

女神的人生理想就是把所有字符串都改造成回文串!这是非常宏伟的理想。

一切理想都从最简单的开始。

好了,现在女神面前有一堆字符串,然后请问能否通过删去一个字符,使这个字符串变成回文串?

Input

多组数据,每组数据是一个字符串S,仅有英文小写字母组成

1<=|S|<=100000

Output

对于每组数据,若可以通过删除一个字符来变成回文串,则输出该字符的下标,若不能或不需要删除,请输出-1

Sample Input

aaab
baa
aaa

Sample Output

3
0
-1 解题思路:
这题折腾我好久,个人因为一些特殊的情况漏掉了,导致提交一直错误,我的做法步骤是,1、判断不删除字符是不是符合,2、去掉第一个字符是不是符合,3、去掉最后一个字符是不是符合,4、用一个i、j标记首位的下标,找到不相等的位置,开始判断,如果i的位置等于len/2,需要删除的字符位置就是i,如果不是就要分4种情况来判断了,第一种就是s[i+1]==s[j]&&s[i]==s[j-1],第二种s[i+1]!=s[j]&&s[i]==s[j-1],第三种s[i+1]==s[j]&&s[i]!=s[j-1]第四种s[i+1]!=s[j]&&s[i]!=s[j-1],用if来解决。 AC代码:
#include<iostream>
#include<string>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;
int flag,sum;
char s[]; int judge1(int si,int sj,int m)
{
int i,j;
for(i=si,j=sj; i<m; i++,j--)
{
if(s[i]!=s[j]) return ;
}
return ;
}
int main()
{
int len,i,j,m;
while(scanf("%s",s)!=EOF)
{
sum=;
len=strlen(s);
m=len/;
if(judge1(,len-,m))
{
printf("-1\n");continue;
}
if(len%==)
{
if(judge1(,len-,m+))
{
printf("0\n");continue;
}
if(judge1(,len-,m-))
{
printf("%d\n",len-);continue;
}
}
if(len%==)
{
if(judge1(,len-,m))
{
printf("0\n");continue;
}
if(judge1(,len-,m))
{
printf("%d\n",len-);continue;
}
} for(i=,j=len-; i<m; i++,j--)
{
if(s[i]!=s[j])
{
if(i!=m)
{
if(s[i+]==s[j]&&s[i]!=s[j-])
{
if(len%==) m++;
if(judge1(i+,j,m)==)
{
sum=;
flag=i;
}
}
else if(s[i+]!=s[j]&&s[i]==s[j-])
{
if(!judge1(i,j-,m)) break;
else
{
sum=;
flag=j;
}
}
else if(s[i+]==s[j]&&s[i]==s[j-])
{
int mm=m,mm2=m;
if(len%==) mm++;
if(!judge1(i+,j,mm))
{
if(!judge1(i,j-,mm2)) break;
else
{
sum=;
flag=j;
}
}
else
{
sum++;flag=i;
}
}
}
else
{
sum=;
flag=i;
}
break;
} }
if(sum==) printf("%d\n",flag);
else printf("-1\n");
}
return ;
}
 

[ACdream]女神教你字符串——违和感的更多相关文章

  1. [ACdream] 女神教你字符串——三个气球

    Problem Description 女神邀请众ACdream开联欢会,显然作为ACM的佼佼者,气球是不能少的~.女神准备了三种颜色的气球,红色,黄色,绿色(交通信号灯?) 有气球还不能满足女神,女 ...

  2. [ACdream]女神教你字符串——导字符串

    Problem Description 正如大家知道的,女神喜欢字符串,而在字符串中,女神最喜欢回文字符串,但是不是所有的字符串都是回文字符串,但是有一些字符串可以进行“求导”来变成回文字符串. 字符 ...

  3. [UWP小白日记-10]程序启动屏(ios解锁既视感)

    讲一下 微软爸爸的开发者大会2016又暴了个表达式动画和Windows.UI.Composition的API,好叼的样子. 官方示例库GitHub 目前是懵逼状态,好复杂.脑细胞已经在地府排队了. ( ...

  4. PHP、Java、Python、C、C++ 这几种编程语言都各有什么特点或优点

    PHP.Java.Python.C.C++ 这几种编程语言都各有什么特点或优点 汇编: C: Java: C#: PHP: Python: Go: Haskell: Lisp: C++: &l ...

  5. [bilibili]弹幕屏蔽列表

    <filters> <item enabled="true">t=定单身</item> <item enabled="true& ...

  6. CYQ.Data 从入门到放弃ORM系列:开篇:自动化框架编程思维

    前言: 随着CYQ.Data 开始回归免费使用之后,发现用户的情绪越来越激动,为了保持这持续的激动性,让我有了开源的念头. 同时,由于框架经过这5-6年来的不断演进,以前发的早期教程已经太落后了,包括 ...

  7. swift开源项目精选

    Swift 开源项目精选-v1.0 2016-03-07 22:11 542人阅读 评论(0) 收藏 举报  分类: iOS(55)   Swift(4)    目录(?)[+]   转自 http: ...

  8. 01_Java语言基础部分(数据类型与表达式、流程控制语句、数组与方法)

    1. Java语言主要由5中符号组成 标识符:数字.字母.美元符.下划线(注意不能数字开头) 关键字(被Java赋予特殊意义的单词,注意所有关键字都是小写):   goto和const保留了它们,但是 ...

  9. ZJOI Day 2 游记

    ---恢复内容开始--- 去ZJOI Day 2打了一会酱油...各种神犇大爷都来屠,南外的小朋友也来屠我们了真是感动...没有看到毛爷爷真是可惜.. Day[-1] 早上还在上课,吃完中饭立马跑去找 ...

随机推荐

  1. 201521123033《Java程序设计》第14周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自 ...

  2. Hyperledger Fabric 1.0 从零开始(八)——Fabric多节点集群生产部署

    6.1.平台特定使用的二进制文件配置 该方案与Hyperledger Fabric 1.0 从零开始(五)--运行测试e2e类似,根据企业需要,可以控制各节点的域名,及联盟链的统一域名.可以指定单独节 ...

  3. 深入理解分布式调度框架TBSchedule及源码分析

    简介 由于最近工作比较忙,前前后后花了两个月的时间把TBSchedule的源码翻了个底朝天.关于TBSchedule的使用,网上也有很多参考资料,这里不做过多的阐述.本文着重介绍TBSchedule的 ...

  4. 如何查看maven plugin所包含的goal

    maven项目的构建生命周期(build lifecycle)由很多阶段组成:从validate到deploy. maven插件中包含goal.这些goal可以被绑定到不同的maven的构建阶段上.g ...

  5. 简单实用的CSS网页布局中文排版技巧

    由于汉字的特殊性,在css网页布局中,中文排版有别于英文排版.排版是一个麻烦的问题,小编认为,作为一个优秀的网页设计师和网页制作人员,掌握一些简单的中文排版技巧是不可或缺的,所以今天特意总结了几个简单 ...

  6. 使用STS时遇到的小“麻烦”

    背景 今天尝试着用STS(Spring Tool Suite)建立了一个Maven webapp来做一个SpringMVC的小demo,在使用的过程中就遇到了一些小麻烦!!记录在此的目的,其一是为了自 ...

  7. JSP入门 Listener

    实现HttpSessionListener 编写一个OnlineUserListener类 package anni; import java.util.List; import javax.serv ...

  8. 【POJ】2348 Euclid's Game(扩欧)

    Description Two players, Stan and Ollie, play, starting with two natural numbers. Stan, the first pl ...

  9. Mybatis Dynamic Query 2.0.2

    项目地址:https://github.com/wz2cool/mybatis-dynamic-query 文档地址:https://wz2cool.gitbooks.io/mybatis-dynam ...

  10. Python数据分析(二): Numpy技巧 (2/4)

    numpy.pandas.matplotlib(+seaborn)是python数据分析/机器学习的基本工具. numpy的内容特别丰富,我这里只能介绍一下比较常见的方法和属性.   昨天晚上发了第一 ...