网易笔试题:回文序列
2016-09-26 19:56
246 查看
如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列。例如:
{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),以空格分隔。
输出描述:
输出一个数,表示最少需要的转换次数
输入例子:
4
1 1 1 3
输出例子:
2
{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),以空格分隔。
输出描述:
输出一个数,表示最少需要的转换次数
输入例子:
4
1 1 1 3
输出例子:
2
package com.suda.alex; import java.util.ArrayList; import java.util.Scanner; public class Test1 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { int n = scanner.nextInt(); int[] item = new int ; for(int i=0;i<n;i++){ item[i] = scanner.nextInt(); } System.out.println(leastTimeToHuiwen(n, item)); } } public static int leastTimeToHuiwen(int n, int[] item) { //比较第一个和最后一个数,如果第一个大,则前两个相加替换原来位置。 //如果最后一个数大,则最后两个相加替换原来位置。 //如果首尾元素相等,则删除首尾元素。 int leastTime = 0; ArrayList<Integer> list = new ArrayList<Integer>(); for(int i=0;i<n;i++){ list.add(item[i]); } while(list.size() > 1){ if(list.get(0) < list.get(list.size() - 1)){ int a = list.get(0); int b = list.get(1); list.set(0, a+b); list.remove(1); leastTime++; } else if(list.get(0) > list.get(list.size() - 1)){ int a = list.get(list.size() - 1); int b = list.get(list.size() - 2); list.set(list.size() - 2, a+b); list.remove(list.size() - 1); leastTime++; } else{ list.remove(0); list.remove(list.size() - 1); } } return leastTime; } }
相关文章推荐
- 网易2017校园招聘笔试题:回文序列
- 网易2017校园招聘笔试题 回文序列
- python字符串split(),join(),strip()函数及网易笔试 回文序列
- 网易笔试题:回文序列
- 网易2017校园招聘笔试题 回文序列
- 网易内推笔试编程题-字符串子序列判断
- 网易笔试编程题:统计回文(C++)
- 统计回文(string.insert的应用,insert只能插入string,不能插入char)----网易2017内推笔试编程题合集(二)
- 2018网易内推笔试-操作序列(python)
- 网易秋招编程题——回文序列
- 【Python】 易笔试编程题(回文序列)
- 网易2018内推笔试题_操作序列_C++
- 网易笔试编程-统计回文
- 网易笔试题:输入一个正整数,若该数能用几个连续正整数之和表示,则输出所有可能的正整数序列。
- 网易真题之回文序列
- 网易笔试题:输入一个正整数,若该数能用几个连续正整数之和表示,则输出所有可能的正整数序列。
- Java在线笔试编程(3)---计算回文序列
- 网易编程题一,回文序列(贪心法)
- 回文序列-2017网易校园招聘
- 网易笔试在线编程_ 操作序列