[网易]回文序列
来源:互联网 发布:阿里云系统的手机 编辑:程序博客网 时间:2024/06/05 05:19
如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列。例如:
{1, 2, 1}, {15, 78, 78, 15} , {112} 是回文序列,
{1, 2, 2}, {15, 78, 87, 51} ,{112, 2, 11} 不是回文序列。
现在给出一个数字序列,允许使用一种转换操作:
选择任意两个相邻的数,然后从序列移除这两个数,并用这两个数字的和插入到这两个数之前的位置(只插入一个和)。
现在对于所给序列要求出最少需要多少次操作可以将其变成回文序列。
{1, 2, 1}, {15, 78, 78, 15} , {112} 是回文序列,
{1, 2, 2}, {15, 78, 87, 51} ,{112, 2, 11} 不是回文序列。
现在给出一个数字序列,允许使用一种转换操作:
选择任意两个相邻的数,然后从序列移除这两个数,并用这两个数字的和插入到这两个数之前的位置(只插入一个和)。
现在对于所给序列要求出最少需要多少次操作可以将其变成回文序列。
输入描述:
输入为两行,第一行为序列长度n ( 1 ≤ n ≤ 50)第二行为序列中的n个整数item[i] (1 ≤ iteam[i] ≤ 1000),以空格分隔。
输出描述:
输出一个数,表示最少需要的转换次数
示例1
输入
41 1 1 3
输出
2
#include<iostream>#include<deque>using namespace std;int main() {int n;while (cin >> n) {deque<int> nums(n);for (int i = 0; i<n; i++)cin >> nums[i];int cnt = 0;while (!nums.empty()) {if (nums.front()<nums.back()) {int tmp1 = nums.front();nums.pop_front();tmp1 += nums.front();nums.pop_front();nums.push_front(tmp1);cnt++;}else if (nums.front()>nums.back()) {int tmp2 = nums.back();nums.pop_back();tmp2 += nums.back();nums.pop_back();nums.push_back(tmp2);cnt++;}else { nums.pop_front(); if(!nums.empty()) nums.pop_back();}}cout << cnt << endl;}}
阅读全文
0 0
- 网易-回文序列
- [网易]回文序列
- 网易笔试题:回文序列
- 网易笔试题:回文序列
- 回文序列-2017网易校园招聘
- 网易真题之回文序列
- 网易2017校园招聘笔试题 回文序列
- 网易2017校园招聘笔试题:回文序列
- 网易2017校园招聘笔试题:回文序列
- 网易秋招编程题——回文序列
- 网易2017校园招聘笔试题 回文序列
- 网易编程题一,回文序列(贪心法)
- 回文序列(网易2017秋招编程题)
- 网易2017秋招编程题----回文序列
- 网易2017秋招编程题:回文序列 [python]
- [网易]字符串回文分割
- 网易 统计回文
- [网易]字符串回文分割
- c语言初步经典题12--我的工资
- C语言编译过程分成四个步骤
- 邝斌的ACM模板(素数筛选和合数分解)
- sdut_1116
- Android开发中常用的跳转系统自带界面方法
- [网易]回文序列
- C Primer Plus(5版)第8章习题讲解(一)
- spring事物只能回滚runtimeexception解决办法
- 执行脚本登录的子SHELL(课堂笔记引发的思考)
- 常用增强学习实验环境 I (MuJoCo, OpenAI Gym, rllab, DeepMind Lab, TORCS, PySC2)
- C语言编程的优化问题
- SSH问题之jsp跳转不到相应的action上
- MySQL协议分析
- linux中的http服务浅谈(1)