统计回文(string.insert的应用,insert只能插入string,不能插入char)----网易2017内推笔试编程题合集(二)

原创 2016年08月28日 20:37:03

[编程题] 统计回文
“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符串B插入字符串A使产生的字符串是一个回文串。你接受花花的请求,帮助她寻找有多少种插入办法可以使新串是一个回文串。如果字符串B插入的位置不同就考虑为不一样的办法。
例如:
A = “aba”,B = “b”。这里有4种把B插入A的办法:
* 在A的第一个字母之前: "baba" 不是回文 
* 在第一个字母‘a’之后: "abba" 是回文 
* 在字母‘b’之后: "abba" 是回文 
* 在第二个字母'a'之后 "abab" 不是回文 
所以满足条件的答案为2 
输入描述:
每组输入数据共两行。
第一行为字符串A
第二行为字符串B
字符串长度均小于100且只包含小写字母


输出描述:
输出一个数字,表示把字符串B插入字符串A之后构成一个回文串的方法数

输入例子:
aba
b

输出例子:
2
#include <iostream>
#include <string>
#include <algorithm>

using namespace::std;

bool isTrue(string tmp) {
	string reverse_str = tmp;
	reverse(reverse_str.begin(), reverse_str.end());
	if (reverse_str == tmp)
		return true;
	else return false;
}

int main() {
	string first, next;

	while (cin >> first >> next) {
		if (first.empty() == true || next.empty() == true) continue;

		int result = 0;

		for (int j = 0; j <= first.size(); ++ j ) {
			string tmp = first;
			tmp.insert(j, next); // insert只能插入string,不能插入char
			if (isTrue(tmp))
				++result;
		}

		cout << result << endl;
	}

	return 0;
}


insert只能插入string,不能插入char
从一个string取出单个字符:

char tmp = string[i]

以上只能取出一个char变量,如果

string tmp = string[i],这种写法是错误的

可以这样:

string tmp = string.substr( i, 1 ) ;

截取单个字符,注意,截取后的单个字符是字符串变量!

版权声明:本文为博主原创文章,未经博主允许不得转载。

网易2017内推笔试题目

http://www.nowcoder.com/discuss/6959?type=3&order=0&pos=2&page=1[编程题] 幸运的袋子 一个袋子里面有n个球,每个球上面都有一个号码(拥...
  • damotiansheng
  • damotiansheng
  • 2016年09月28日 10:33
  • 659

2017年网易校招笔试编程题第二题

1、题目 未曾将题目抄下,大致提议如下: 给定n个正整数组成的数列,找出取这n个正整数中的一部分数字求和所不能得到的最小数。【输入】第一行:一个正整数n,为数列整整数的个数 ...
  • liu_005
  • liu_005
  • 2016年08月06日 22:44
  • 1176

网易2017春招实习生笔试编程题集合(C++方向)

挺早之前做好一直想写一篇博客分享一下,但是后来给忘了…C++方向一共十二道编程题,可能和别的方向有一些出入。题目总体的难度不大,有些题有些小坑,适合进阶者练练手。 代码都扔在Github了 -> ...
  • cqk0100
  • cqk0100
  • 2017年06月17日 10:35
  • 676

C++ string类insert函数

string的成员函数insert有以下多种重载: string &insert(int p0, const char *s);——在p0位置插入字符串s string &insert(i...
  • qq_30399353
  • qq_30399353
  • 2017年07月19日 16:58
  • 3191

2018年网易校招内推编程题之等差数列

如果一个数列S满足对于所有的合法的i,都有S[i + 1] = S[i] + d, 这里的d也可以是负数和零,我们就称数列S为等差数列。 小易现在有一个长度为n的数列x,小易想把x变为一个等差数列。...
  • zhang_guyuan
  • zhang_guyuan
  • 2017年08月17日 14:52
  • 147

【牛客网】网易2017内推笔试编程题合集(二)

1、【*】[编程题] 混合颜料 你就是一个画家!你现在想绘制一幅画,但是你现在没有足够颜色的颜料。为了让问题简单,我们用正整数表示不同颜色的颜料。你知道这幅画需要的n种颜色的颜料,你现在可以去商店...
  • xiaoquantouer
  • xiaoquantouer
  • 2017年01月11日 15:01
  • 1196

C# string insert

DateTime dtnow = DateTime.Now; string str = "19890323"; str.Insert(4,"-"); ...
  • haibin_hu
  • haibin_hu
  • 2013年09月10日 11:11
  • 1361

String insert() 插入方法

文件头格式 #include "stdafx.h" #include #include int main( ) {    using namespace std; } ...
  • zhanglu5227
  • zhanglu5227
  • 2013年02月23日 11:00
  • 39108

2017年网易校招笔试编程题第一题

1、 题目 题目大意是:给定一个数n,计算n与斐波那契数的最小差值。2、举例 【输入】一个正整数n 【输出】n与斐波那契数的最小差值如: 【输入】15 【输出】23、 我的思路 找出第一个...
  • liu_005
  • liu_005
  • 2016年08月06日 23:32
  • 1847

2017网易秋招内推面试经历

记录下面试时被问到的一些问题,有些可能不记得了,趁着还有印象,写下来。...
  • Fly_TheWind
  • Fly_TheWind
  • 2016年08月14日 15:28
  • 2419
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:统计回文(string.insert的应用,insert只能插入string,不能插入char)----网易2017内推笔试编程题合集(二)
举报原因:
原因补充:

(最多只允许输入30个字)