编程2022-03 回文字符串

Posted YoungerChina

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程2022-03 回文字符串相关的知识,希望对你有一定的参考价值。

题目描述

时间限制: 3000MS
内存限制: 589824KB

题目描述:

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

输入描述

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

输出描述

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

示例

样例输入

coco

样例输出

Yes

思路

等价于“删除一个字符是回文字符串”

实现:

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int checkABA(char str[])

  int size = 0;
  size = strlen(str);
  for (int i = 0; i <= (size - 1) / 2; i++)
  
    if (str[i] != str[size - 1 - i])
      return 0;
  
  return 1;


int main()

  int aba = 0;
  int len = 0;
  char str[10];
  char tmp_string[10];
  memset(str, '\\0', sizeof(str));
  memset(tmp_string, '\\0', sizeof(tmp_string));
  while (scanf("%s", &str) != EOF)
  
    aba = 0;
    len = strlen(str);
    for (int i = 0; i < len; i++)
    
      for(int j = 0; j < len - 1; j++)
      
        if (j < i)
          tmp_string[j] = str[j];
        else
          tmp_string[j] = str[j + 1];
      
      if (checkABA(tmp_string) == 1) 
        aba = 1;
        break;
      
    
    printf("%s\\n", aba == 1 ? "Yes" : "No");
    memset(str, '\\0', sizeof(str));
    memset(tmp_string, '\\0', sizeof(tmp_string));
  
  return 0;

---------------------------------------------------------------------------------------- 

计划:每周一道题,作为码农,无论是什么时候都不应该放弃编程

创作打卡挑战赛 赢取流量/现金/CSDN周边激励大奖

以上是关于编程2022-03 回文字符串的主要内容,如果未能解决你的问题,请参考以下文章

python编程,回文数判断?

编程之法:面试和算法心得(最长回文子串)

腾讯2017暑期实习生编程题 第一题 构造回文

如果没有输入,如何退出代码?代码示例:检查字符串是不是为回文? (在 C 编程语言中)

C和指针--编程题9.14第10小题--判断回文函数

腾讯2016春招之算法编程解析