2016校招真题之首个重复字符

1、题目描述

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

测试样例:
"qywyer23tdd",11
返回:y
 

2、代码实现

 1 package com.wcy.october;
 2 
 3 /**
 4  * 时间:2016年10月16日
 5  * 题目:首个重复字符
 6  * 题目描述:对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。给定一个字符串(不一定全为字母)A及它的长度n。请返回第一个重复出现的字符。
 7  * 保证字符串中有重复字符,字符串的长度小于等于500。
 8  * 测试样例:
 9  * "qywyer23tdd",11
10  * 返回:y
11  */
12 public class FirstRepeat {
13 
14     /**
15      * 求第一次重复出现的字符
16      * @param A 字符串(不一定全为字母)
17      * @param n 字符串长度
18      * @return 返回第一个重复出现的字符
19      */
20     public char findFirstRepeat(String A, int n) {
21         for (int i = 0; i < A.length(); i++) {
22             for (int j = 0; j < i; j++) {
23                 if (A.charAt(i) == A.charAt(j)) {
24                     return A.charAt(j);
25                 }
26             }
27         }
28         return '0';
29     }
30     
31     /**
32      * 用户页面测试
33      * @param args
34      */
35     public static void main(String[] args) {
36         FirstRepeat test = new FirstRepeat();
37         char result = test.findFirstRepeat("qywyer23tdd", 11);
38         System.out.println(result);
39     }
40 }
原文地址:https://www.cnblogs.com/wangchaoyuan/p/5966331.html