面试题:给定一个字符串,问是否能通过添加一个字母将其变为回文串
来源:互联网 发布:大学网络交友平台 编辑:程序博客网 时间:2024/05/17 01:00
题目描述
给定一个字符串,问是否能通过添加一个字母将其变为回文串。
输入描述:
一行一个由小写字母构成的字符串,字符串长度小于等于10。
输出描述:
输出答案(YES\NO).
输入例子:
coco
输出例子:
YES
题目不严谨,没说明是否可以在字符串中间插入,如果只是在首尾添加,我的方法是对的
#include<iostream>#include<iomanip>#include<math.h>#include <vector>#include <string.h>using namespace std;bool isBackString(string str){int length = str.length();char* a = new char[length+1];strcpy(a,str.c_str());int start = 0;int end = length - 1;while (start<end){if (a[start] != a[end])return false;start++;end--;}return true;}int main(){string str;while (cin >> str){char cbegin = str[0];char cend = str[str.length() - 1];if (isBackString(str+cbegin)){cout << "YES" << endl;}else if (isBackString(cend+str)){cout << "YES" << endl;}else{cout << "NO" << endl;}}//system("pause");return 0;}附上别人的代码,思路是通过删除字符,判断是不是回文,这个方法才是对的,
另外判断是否是回文可以直接用用reverse函数,我不知道有这个函数。。
其实如果直接反转字符串,再比较也是可以的
#include <iostream>#include <cstdlib>#include <string>#include <algorithm>using namespace std;/*判断是否为回文串*/bool isPalindrome(const string &str){string s = str;reverse(s.begin(), s.end());return s == str;}int main(){string str;while (cin >> str){if (str.empty() || str.length() == 1)cout << "YES";else{int len = str.length();string tmp;bool ret = false;for (int i = 0; i < len; ++i){tmp = str.substr(0, i) + str.substr(i + 1);if (isPalindrome(tmp)){ret = true;break;}//}if (ret)cout << "YES" << endl;elsecout << "NO" << endl;}}//whilereturn 0;}
0 0
- 面试题:给定一个字符串,问是否能通过添加一个字母将其变为回文串
- 给定一个字符串,问是否能通过添加一个字母将其变为回文串。
- 给定一个字符串,问是否能通过添加一个字母将其变为回文串。js实现
- 给定一个字符串,问是否能够通过添加一个字母将其变成“回文串”
- 判断是否能通过添加一个字母将字符串变为回文串
- 字符串添加一个字母将其变为回文串
- 【每日面试题】给定一个字符串,求出其最长的重复子串
- 将一个字符串放在另一个字符串最前面or最后面,判断是否是能回文字符串
- 给定一个单链表,确认其是否为回文链表
- 【2013微软校招面试题】求给定的一个字符串最小需要添加多少个字符才能成为回文串
- 通过最长公共子串求得使得一个串变为回文串的最少添加字符
- 判断一个字符串是否能够通过添加一个字符变成回文序列的方法
- 【面试题】给定一个仅包含字母和数字(0-9)的字符串,要求找到最长递增的数字串
- 动态规划题:把一个字符串变为回文串
- 【JavaScript】面试题:重复输出一个给定的字符串
- 面试题2之翻转一个给定的字符串
- JavaScript 面试题:重复输出一个给定的字符串
- 将一个字符串的字符变为其前一个的字符
- 详解二叉查找树算法的实现
- android中实现一个APP启动另一个APP并实现类似微信分享
- BZOJ3387: [Usaco2004 Dec]Fence Obstacle Course栅栏行动
- 2016年8月22号
- iOS自定义视频录制界面
- 面试题:给定一个字符串,问是否能通过添加一个字母将其变为回文串
- 隐式代码举例
- #182 Delete Digits
- angular-cli for webpack and scss
- 生成二维码
- ScrollView嵌套ListView
- Java的环境变量配置
- Oracle基础知识(二)
- 使用jQuery错误排查