题目描述
对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。
给定一个字符串(不一定全为字母)A及它的长度n。请返回第一个重复出现的字符。保证字符串中有重复字符,字符串的长度小于等于500。
测试样例:
"qywyer23tdd",11
返回:y
package com.cn.yqjr; import java.util.ArrayList; import java.util.List; public class FirstRepeat { public static void main(String[] args) { System.out.println(findFirstRepeat("pmedmitjtckhxwhvpwemznhmhzhpueainchqrftkmbjlradhmjekcqzansyzkvqhwnrdgzdbzewdmxkzrscikdaugbvygntrifnolehdtrqjlasofuvzeijbmzehkxknmjekcxswqldknysfsxrqaqzp",152)); } //返回:y public static char findFirstRepeat(String A, int n) { String[] str=A.split(""); for(int x=0;x<n;x++){ int index=0; int num=0; //对于每一个值,都需要从前开始遍历 while(index<=x){ if(str[index].equals(str[x])){ num++; } index++; } //该值出现了两次,说明重复了 if(num>1){ char flag='x'; flag=str[x].toCharArray()[0]; return flag; } } //返回该值说明已经没有重复的 return 'p'; } }