趣味字母卡片-拼多多笔试题
Posted lixyuan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了趣味字母卡片-拼多多笔试题相关的知识,希望对你有一定的参考价值。
趣味字母卡片-拼多多笔试题
小明给儿子小小明买了一套英文字母卡片(总共包含52张,区分大小写),小小明把卡片丢在地上玩耍,并从中取出若干张排成一排,形成了一个卡片序列。
此时,小明需要将卡片序列中的重复字母剔除(同一个字母的大小写只保留一个)。
请问,所有可能的结果中,字母序最小(不区分大小写)的序列的第一张卡片上是哪个字母?
输入格式
共一行,包含一个非空字符串,表示卡片序列,长度为N。
输出格式
共一行,包含一个字母(如果结果是大写字母,则需要转换成小写)。
数据范围
1≤N≤52
输入样例:
xaBXY
输出样例:
a
样例解释
剔除完后的结果是abxy。
java代码实现:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
char[] s = sc.next().toCharArray();
for(int i=0; i < s.length; i++) {
if(s[i] < ‘a‘) s[i] = (char)(s[i] + 32);
}
for(char c = ‘a‘; c <= ‘z‘; c = (char)(c + 1)) {
int k = 0;
for(; k < s.length && s[k] != c; k++) ;
if(k > s.length-1 || s[k] != c) continue;
int[] cnt = new int[128];
for(int i=k; i < s.length; i++)
cnt[s[i]]++;
boolean can = true;
for(int i=0; i < k; i++)
if(cnt[s[i]] == 0) {
can = false;
break;
}
if(can) {
System.out.println(c);
break;
}
}
}
}
以上是关于趣味字母卡片-拼多多笔试题的主要内容,如果未能解决你的问题,请参考以下文章