当前位置: 首页 > article >正文

CF 420A.Start Up(Java实现)

题目分析

        乍一看这个题像是字符版的回文数,但是这里说到的是镜子对照,所以部分字母在镜子对照后会与原字母朝向不同等情况,此情况时就要排除

思路分析

        那么首先我们需要确认输入的字母在镜子对照前后始终如一,其次应该是回文字符串,不满足任一情况都“NO”

代码


import java.util.*;

public class Main {

	public static void main(String[] args)  {
		Scanner sc = new Scanner(System.in);
		char[] arr=sc.nextLine().toCharArray();//输入的值分成字符存储
		ArrayList<Character> list=new ArrayList<>();//用于存输入的值
		ArrayList<Character> alist=new ArrayList<>();//用于存不符合要求的字母
		for (char c:
			 arr) {
			list.add(c);//存输入的值
		}
		alist.add('B');
		alist.add('C');
		alist.add('D');
		alist.add('E');
		alist.add('F');
		alist.add('G');
		alist.add('J');
		alist.add('K');
		alist.add('L');
		alist.add('N');
		alist.add('P');
		alist.add('Q');
		alist.add('R');
		alist.add('S');
		alist.add('Z');//以上字母不满足条件,镜子对照后不同//当然你也可以用其他聪明的存值方式
		String re="YES";//初始化答案
			for (int i = 0; i < arr.length/2; i++) {//回文对比只看两端所以长度是length/2
				if (arr[i]!=arr[arr.length-1-i]){//比交首位
					re="NO";//不相同就修改答案
					break;//错误就结束
				}//当然你也可以用其他的函数比如reverse
			}
		list.retainAll(alist);//此题我用的最重要的函数,retainall,相当于是交集函数,看list和alist是否有相同的元素,如果有说明list中就有不满足条件的字母//此函数会更新list的值所以放在回文确认之后
			if (list.size()>0){//此时list已被更新,如果size>0说明有相交
				re="NO";//则输出为NO
			}
		System.out.println(re);
	}
}

        感谢您能够看到这里,一起见证小何同学的算法学习,如果您有不同的见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。


http://www.kler.cn/a/518073.html

相关文章:

  • SAP新增公司间交易的配置点---SD部分内容
  • 二叉树的最大深度(C语言详解版)
  • ThreeJS示例教程200+【目录】
  • 【PowerQuery专栏】PowerQuery的M语言函数Access数据库访问
  • 自定义数据集使用框架的线性回归方法对其进行拟合
  • 2025美赛B题完整代码+建模过程
  • 14-6-2C++的list
  • 基于 AI Coding 「RTC + STT」 Web Demo
  • 多层 RNN原理以及实现
  • Underwater 系列coding记录
  • Golang Gin系列-8:单元测试与调试技术
  • Gin 应用并注册 pprof
  • Jenkins pipeline共享库的最佳实践
  • 全面指南:使用JMeter进行性能压测与性能优化(中间件压测、数据库压测、分布式集群压测、调优)
  • LogicFlow 一款流程图编辑框架
  • SQL Server 建立每日自动log备份的维护计划
  • 基于 STM32 的智能农业温室控制系统设计
  • StarRocks常用命令
  • 24_游戏启动逻辑梳理总结
  • C语言初阶牛客网刷题——HJ76 尼科彻斯定理【难度:简单】
  • Class ‘ZipArchive‘ not found
  • 算法整理:2-opt求解旅行商(Python代码)
  • 算法中的移动窗帘——C++滑动窗口算法详解
  • docker:容器化虚拟化的原理
  • 安装MeloTTS报错解决方法
  • 08-ArcGIS For JavaScript-通过Mesh绘制几何体(Cylinder,Circle,Box,Pyramid)