Java技术文章程序员面试的那些小事面试_算法

去哪儿笔试题:首个重复字符

2017-02-22  本文已影响337人  chenxuxu
去哪儿.jpeg

题目

对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。
给定一个字符串 (不一定全为字母) A 及它的长度 n 。请返回第一个重复出现的字符。保证字符串中有重复字符,字符串的长度小于等于 500。

测试样例:

"qywyer23tdd",11

返回:y

思路&答案

用哈希表解决,代码如下:


        import java.util.HashMap;
        import java.util.Scanner;

        public class Main {
            public static void main(String[] args) {
                Scanner scan = new Scanner(System.in);
                String str = scan.next();
                int num = scan.nextInt();
                char[] c = str.toCharArray();
                HashMap<Character, String> map = new HashMap<>();
                for (int i = 0; i < num; i++) {
                    if (map.containsKey(c[i])) {
                        System.out.println(map.get(c[i]));
                        return;
                    }
                    map.put(c[i], String.valueOf(c[i]));
                }
            }
        }

上一篇下一篇

猜你喜欢

热点阅读