褪色的回文,为什么我得到错误的判决?
Faded Palindromes,why i'm getting wrong verdict?
字符串中褪色的字符用'表示。',而其他字符则是小写拉丁字母,即['a'-'z']。可以包含一个或多个褪色的字符串。我想通过用小写拉丁字母填充每个褪色字符('.')来构建字典上最小的回文。我试了3个多小时,但我得到了错误的判决。我不能解决我的问题。有人能帮我吗?
#include<bits/stdc++.h>
using namespace std;
int main()
{
//freopen("a.in", "r", stdin);
//freopen("a.out", "w", stdout);
int test;
string s;
cin>>test;
while(test--)
{
cin>>s;
for(int i=0; i<s.size()/2; i++)
{
if(s[i]=='.')
{
if(s[i]==s[s.size()-1-i])
{
s[i]='a';
s[s.size()-1-i]='a';
}
}
}
if(s.size()%2) s[s.size()/2]='a';
//cout<<"s = "<<s<<endl;
for(int i=0; i<s.size()/2; i++)//left string checking
{
if(s[i]=='.')
{
s[i]=s[s.size()-1-i];
}
}
for(int i=s.size()-1,k=0; i>s.size()/2; i--,k++)//Right string checking
{
if(s[i]=='.')
{
s[i]=s[k];
}
}
//cout<<" ss = "<<s<<endl;
bool flag=true;
for(int i=0; i<s.size()/2; i++)
{
if(s[i]!=s[s.size()-1-i])
{
flag=false;
}
}
if(flag==false) cout<<"-1"<<endl;
else cout<<s<<endl;
}
}
IDEOne链接
更正行::66你的中间字符总是'a'。我们应该把字符"a",当中间位置是褪色字符。也许他能帮到你。
相关文章:
- C++:正在检查LinkedList中的回文-递归方法-错误
- Usaco第1.6节主要回文
- 最大的回文产品 - 程序未运行,编写解决方案但无法理解问题
- 将 S1 转换为回文,并将 S2 作为其子字符串
- 数回文词
- 最长的回文子串(C++帮助)
- 有人可以详细解释这个回文代码是如何工作的吗?
- 回文递归版本
- 如何检查C ++ STL列表是否为回文?
- MSVC __debugbreak() 与 openGL 错误回调一起使用时不会产生调用堆栈
- 回文数在 1 到 10000 之间
- C++ - 检查结构数据类型中的单词是否为回文
- 是回文作业练习
- 回文递归不停止
- 整数数组中最长的回文
- 回文测试
- 最大的回文产品(Project Euler)——C++
- C++ 回文程序总是给出 0(假)作为输出问题;我的代码哪里有问题?
- 褪色的回文,为什么我得到错误的判决?
- 字符串回文在String.size()上给出错误答案,但在String.seize()-1上给出正确答案