标签:i++ import code scanner 格式 for 转换 输出 字符串
趣味字母卡片-拼多多笔试题
小明给儿子小小明买了一套英文字母卡片(总共包含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;
}
}
}
}
标签:i++ import code scanner 格式 for 转换 输出 字符串
原文地址:https://www.cnblogs.com/lixyuan/p/12983242.html