回文串

题目来源:【赛码】字符串练习

题目描述:
给定一个字符串,问是否能够通过添加一个字母将其变成“回文串”。 “回文串”是指正着和反着读都一样的字符串。如:”aa”,”bob”,”testset”是回文串,”alice”,”time”都不是回文串。

输入描述
一行一个有小写字母构成的字符串,字符串长度不超过10。

输出描述
如果输入字符串可以通过添加一个字符,则输出”YES”,否则输出”NO”。

样例输入
coco
样例输出
Yes

题解:
1.如果一个字符串能通过添加一个字母变成回文串,那么它去掉一个字母也就可以变成回文串,遍历删除一位字符,若能得到回文串则满足,否则添加一个字符也不能变成回文串。


let str = read_line();
function ishuiwen(str)
{
  for(let i = 0; i < str.length / 2; i++)
  {
    if(str[i] != str[str.length - i - 1])
        return false;
    else
      return true;
  }
}

let flag = false;
if(ishuiwen(str) === true)
  print("Yes");
else
  {
    for(let i = 0; i < str.length; i++)
      {
        if(ishuiwen(str.substr(0, i) + str.substr(i + 1)))
            flag = true; 
      }
    if(flag)
      print("Yes");
    else
      print("No");
  }

posted @ 2022-04-02 16:52  张宵  阅读(303)  评论(0编辑  收藏  举报