【简单】回文序列
来源:互联网 发布:java判断是否是空格 编辑:程序博客网 时间:2024/06/03 10:54
如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列。例如:
{1, 2, 1}, {15, 78, 78, 15} , {112} 是回文序列,
{1, 2, 2}, {15, 78, 87, 51} ,{112, 2, 11} 不是回文序列。
现在给出一个数字序列,允许使用一种转换操作:
选择任意两个相邻的数,然后从序列移除这两个数,并用这两个数字的和插入到这两个数之前的位置(只插入一个和)。
现在对于所给序列要求出最少需要多少次操作可以将其变成回文序列。
import java.util.Scanner;public class Main { public static boolean check(int[] num,int mid){ int i = mid; int j = mid; //System.out.println(mid); for(;i>0 && j<num.length-1;i--,j++){ if(num[i] != num[j]) return false; if(num[i]==-1&&num[i]==num[j]) break; } return true; } public static int Solution(int[] num){ int counts = 0; int i = 0; int j = num.length-1; while(i < j){ if(num[i] < num[j]){ num[i+1] += num[i]; num[i] = 0; i++; counts++; } else if(num[i] > num[j] ){ num[j-1] += num[j]; num[j] = 0; j--; counts++; }else { i++; j--; } } return counts; } public static void main(String[] args) { // TODO Auto-generated method stub Scanner cin = new Scanner(System.in); while(cin.hasNext()){ int n = cin.nextInt(); int[] arr = new int[n]; for(int i=0;i<n;i++){ arr[i] = cin.nextInt(); } System.out.println(Solution(arr)); } }}
0 0
- 【简单】回文序列
- 回文序列
- 回文序列
- 回文序列
- 回文序列
- 回文序列
- 回文序列
- 回文序列
- 回文序列
- 回文序列
- 回文序列
- 回文序列
- 回文序列(P1221)
- 最长回文子序列
- 最长回文子序列
- 【hihoCoder】回文字符序列
- 回文字符序列
- 回文字符序列
- Oracle保留字符字段
- WPF+MVVM数据绑定问题集锦
- ORACLE简繁转换函数
- 学习资料 存储过
- 极光推送的步骤
- 【简单】回文序列
- java爬虫--crawler4j
- Hashcode方法的用法
- JavaScript初学者应知的24条最佳实践
- C语言 结构体中使用strcpy方法,以及结构体指针
- 获取指定路径下所有文件生成树型结构列表
- Linux相关网址收藏
- java开发系统内核:cls 屏幕清空命令的实现
- 如何理解css的BFC抽象概念