gpt4 book ai didi

algorithm - 多次删除一个字符后检查字符串是否为回文?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:03:16 26 4
gpt4 key购买 nike

所以,我正在解决以下问题:

http://codeforces.com/problemset/problem/276/B

现在,我想到的逻辑是这样的:

  1. 检查字符串是否已经是回文。
  2. 如果是,打印 First 并 break。
  3. 如果没有,则调用remove函数。
  4. 检查字符串是否已经是回文。
  5. 如果是,则打印 second 并 break
  6. 否则调用删除函数。

继续执行步骤 1-6,直到遇到特定的 break 语句。

其中remove函数如下:

string rm (string s)
{
int len = s.length();
int l=0,r=len-1;
while (l < r)
{
if (s[l] != s[r])
{
s.erase(l,1);
//l++;
//r--;
break;
}
l++;
r--;
}
return s;
}

基本上,它从结尾查找字符串中第一个不匹配的字符,然后删除该字符。 (因为两个玩家都发挥最佳)

现在,我在其中一个字符串很长(太长以至于我无法在此处写入)的测试用例中获得 WA。我读了社论,那里的逻辑与我的不同,我理解这一点。但是,我只是想知道我的逻辑是否有问题。我的代码中可能有一些错误,但我只想知道我的逻辑是对还是错。

最佳答案

注意玩家可以重新排列字母,因此

abcdcdba

已经是胜局了(reorder -> abcddcba).

关于algorithm - 多次删除一个字符后检查字符串是否为回文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30651930/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com