zoukankan      html  css  js  c++  java
  • 趣味字母卡片-拼多多笔试题

    趣味字母卡片-拼多多笔试题

    小明给儿子小小明买了一套英文字母卡片(总共包含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;
                }
            }
        }
    }
    
  • 相关阅读:
    hdu 3085
    hdu 3295 模拟过程。数据很水
    hdu 2181 水搜索
    pku ppt some problem
    2-sat
    The 2014 ACM-ICPC Asia Mudanjiang Regional First Round
    nenu contest3
    The 10th Zhejiang Provincial Collegiate Programming Contest
    最小费用最大流
    多源最短路
  • 原文地址:https://www.cnblogs.com/lixyuan/p/12983242.html
Copyright © 2011-2022 走看看