1029 旧键盘 (20分) Java题解 PAT (Basic Level) Practice (中文) - Java最简解法
2020-01-11 16:34
639 查看
1029 旧键盘 (20分)
一、题目:
输入样例 1:
7_This_is_a_test _hs_s_a_es
输出样例 1:
7TI
二、解析:
思路1:
使用字符串的contains方法进行判断。我觉得的最简解法。
AC代码2:
import java.util.Scanner; /** * 1029 旧键盘 (20分) * * @思路:使用字符串的contains方法进行判断 * @author: ChangSheng * @date: 2019年12月30日 下午10:17:46 */ public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); char[] A = s.next().toUpperCase().toCharArray(); String B = s.next().toUpperCase(), print = ""; for (int i = 0; i < A.length; i++) { if (!B.contains(A[i]+"") && !print.contains(A[i]+"")) { // 如果B中不包含A[i]并且print中不包含[i] print += A[i]; } } System.out.println(print); } }
思路2:
先遍历A字符串,从A字符串中一个一个字符遍历下来,如果A中第i字符不等于B的第index个字符,那么说明B字符串缺少这个字符。则转换成大写凭拼接。然后再将拼接好字符串去重。
注意:这个算法并不是最优。
AC代码2:
/** * 1087 有多少不同的值 (20分) * * @思路:将所有数不同值存到数组,然后将数组中的不同值输出。 * @author: ChangSheng * @date: 2019年12月30日 下午10:17:46 */ public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); String A = s.next(), B = s.next(), print = ""; int index = 0; for (int i = 0; i < A.length(); i++) { char c1 = A.charAt(i); char c2 = 0; if (index < B.length()) { c2 = B.charAt(index); } if (c1 != c2) { print += String.valueOf(c1).toUpperCase(); } else { index++; } } // 去重 int[] arr = new int[128]; for (int i = 0; i < print.length(); i++) { char c = print.charAt(i); arr[c]++; } for (int i = 0; i < print.length(); i++) { char c = print.charAt(i); if (arr[c] > 0) { arr[c] = 0; System.out.print(c); } } } }
- 点赞 1
- 收藏
- 分享
- 文章举报
相关文章推荐
- PAT(Basic level)Practice 1029 旧键盘 题解
- PAT (Basic Level) Practice (中文)1029 旧键盘 (20 分)
- 浙江大学PAT (Basic Level) Practice (中文)1004成绩排名JAVA实现代码及分析
- 浙江大学PAT (Basic Level) Practice (中文)1011A+B 和 CJAVA实现代码及分析
- 浙江大学PAT (Basic Level) Practice (中文)1018锤子剪刀布JAVA实现代码及分析
- 浙江大学PAT (Basic Level) Practice (中文)1001(3n+1)猜想-1002写出这个数JAVA实现代码
- 浙江大学PAT (Basic Level) Practice (中文)1015德才论JAVA实现代码及分析
- 浙江大学PAT (Basic Level) Practice (中文)1016部分A+BJAVA实现代码及分析
- PAT (Basic Level) Practice 1029 旧键盘
- PAT 乙级 (Basic Level) Practice (中文)1029
- 1022 D进制的A+B (20 分)Java实现 From PAT (Basic Level) Practice (中文)
- 浙江大学PAT (Basic Level) Practice (中文)1013数素数JAVA实现代码及分析
- 浙江大学PAT (Basic Level) Practice (中文)1006换个格式输出整数JAVA实现代码及分析
- 浙江大学PAT (Basic Level) Practice (中文)1014福尔摩斯的约会JAVA实现代码及分析
- PAT (Basic Level) Practice 1029 旧键盘
- 浙江大学PAT (Basic Level) Practice (中文)1008数组元素循环右移问题JAVA实现代码及分析
- PAT (Basic Level) Practise (中文)1029. 旧键盘(20)
- PAT (Basic Level) Practise (中文)1029. 旧键盘(20) C语言
- 浙江大学PAT (Basic Level) Practice (中文)1007素数对猜想JAVA实现代码及分析
- 浙江大学PAT (Basic Level) Practice (中文)1003我要通过!JAVA代码实现及其规律分析