2019拼多多暑期实习生机试题-02趣味字母卡片(java)
发布日期:2021-06-20 05:37:08 浏览次数:3 分类:技术文章

本文共 1093 字,大约阅读时间需要 3 分钟。

 

分析:

1. 名词解释

       字母序要理解:字典序(dictionary order),又称 字母序(alphabetical order),原意是表示英文单词在字典中的先后顺序,在计算机领域中扩展成两个任意字符串的大小关系。在字典中,单词是按照首字母在字母表中的顺序进行排列的,比如 alpha 在 beta 之前。而第一个字母相同时,会去比较两个单词的第二个字母在字母表中的顺序,比如 account 在 advanced 之前,以此类推。

2. 算法思想

        在讲字符串全部转为小写后先计算重复的字符个数。然后从头开始检查一直重复的字符,并将此字符重复字数减一,直到遇到重复次数为1的字符为止。检查的过程一直记录最小的字符,最后输出。

        原因:题目中删除所有重复的字符,无论怎么删最后的字符个数是一样的。我们要做的就是使头一个字符最小(题目中只需要输出第一个字符),遇到重复的字符我们有两种选择:如果这个字符留在前面能作为最小的字符就留着,否则就删掉。

java代码:

import java.util.*;/** * @author: Mr.Hu * @create: 2019-03-01 21:10 */public class Main{    public static void main(String[] args) {        Scanner sc =new Scanner(System.in);        while (sc.hasNext()){            String s=sc.next().toLowerCase();            Map
map =new HashMap<>(); for (int i = 0; i < s.length(); i++) { if(map.containsKey(s.charAt(i))) map.put(s.charAt(i),map.get(s.charAt(i))+1); else map.put(s.charAt(i),1); } char result ='z'; int i=0; while (map.get(s.charAt(i)) >1) { //是重复的我要记录下最小的,将重复数-1 if(s.charAt(i)

 

转载地址:https://blog.csdn.net/h2453532874/article/details/88384715 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Java [编程题]大整数相乘
下一篇:2019拼多多暑期实习生机试题-01(java)

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月01日 07时09分27秒