java 蓝桥杯 猜字母

本文介绍了一道涉及字符串操作及算法实现的问题,任务要求从特定的字符序列中逐步删除奇数位置上的字母直至仅剩下一个字母。文章提供了一个Java程序示例,展示了如何使用列表来实现这一过程。

把abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串。


    接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。


    得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。

 

答案是一个小写字母,请通过浏览器提交答案。不要填写任何多余的内容。

 

代码如下:

 

import java.util.*;

public class Main{
	public static void main(String[] args) {
		List<Character> list = new ArrayList<Character>();
		for(int i=0; i<106; i++)
		for(char c='a'; c<='s'; c++) {
			list.add(c);
		}
		while(list.size()>1) {
			for(int i=0; i<list.size(); i++) {
				list.remove(i);
			}
			
		}
		System.out.println(list.get(0));
	}
}


水题,主要是集合学的不太好。

 

### Java 实现回文字母图 对于给定字符串判断其是否可以构成回文结构并计算可能的不同方案数量,可以通过遍历字符数组来完成。下面是一个具体的例子: ```java import java.util.*; public class PalindromeChecker { public static void main(String args[]) { double mod = Math.pow(10, 9) + 7; Scanner scan = new Scanner(System.in); String str = scan.next(); int l = 0; int r = str.length() - 1; double sum = 1; while (l <= r) { if (str.charAt(l) == '?' && str.charAt(r) == '?') { sum = sum * 26 % mod; } else if (str.charAt(l) != '?' && str.charAt(r) != '?' && str.charAt(l) != str.charAt(r)) { sum = 0; break; } l++; r--; } System.out.println((int) sum); } } ``` 这段代码实现了输入一个字符串后,通过检查两端字符是否相等或为通配符`?`来进行处理[^1]。 #### 关键点解释 - **初始化变量** - `mod`: 定义模数用于防止数值溢出。 - `Scanner scan`: 创建扫描器对象读取控制台输入。 - **逻辑流程** - 使用双指针方法分别指向字符串首尾位置。 - 当遇到两个未知字符(`?`)时,则乘以26表示可以选择任意字母填充这两个位置。 - 如果发现不匹配且不是未知字符的情况则直接返回不可能形成有效回文串的结果即设置`sum=0`退出循环。 - 继续移动左右指针直到相遇为止。 - **输出结果** - 打印最终得到的有效组合数目,并将其转换成整型输出。 此程序适用于解决特定类型的回文问题,在蓝桥杯竞赛中可能会作为一道考察基础算法能力的选择题出现。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值