一个字符串中可能包含a~z中的多个字符,如有重复,如String data="aavzcadfdsfsdhshgWasdfasdf",
求出现次数最多的那个字母及次数,如有多个重复的则都求出。〔金山公司面试题〕
实现代码如下:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.TreeSet;
public class FindRepeatChar {
public static void doString(String strInput) {
char[] chars = strInput.toCharArray();
ArrayList lists = new ArrayList();
TreeSet set = new TreeSet(); //
for (int i = 0; i < chars.length; i++) {
lists.add(String.valueOf(chars[i]));
set.add(String.valueOf(chars[i])); //引入TreeSet,通过集合快速找到 出现的 字符串
}
System.out.println(set);
Collections.sort(lists); //引入ArrayList,实现快速排序
System.out.println(lists);
StringBuffer sb = new StringBuffer();
for (int i = 0; i < lists.size(); i++) {
sb.append(lists.get(i)); //通过StringBuffer生成排序后的字符串
}
strInput = sb.toString();
System.out.println(strInput);
int max = 0;
String maxString = "";
ArrayList maxList = new ArrayList();
for (Iterator its = set.iterator(); its.hasNext();) {
String os = (String) its.next();
int begin = strInput.indexOf(os); //每个字符第一次出现的位置
int end = strInput.lastIndexOf(os); //每个字符最后一次出现的位置
int value = end - begin + 1;
if (value > max && value > 1) {
maxList.clear(); //应该加上这条语句
max = value;
maxString = os;
maxList.add(os);
} else if (value == max) {
maxList.add(os);
}
}
int index = 0;
for (int i = 0; i < maxList.size(); i++) {
if (maxList.get(i).equals(maxString)) {
index = i;
break;
}
}
System.out.println("出现最多的字符为:");
for (int i = 0; i < maxList.size(); i++) {
System.out.println(maxList.get(i) + "");
}
System.out.println();
System.out.println("出现最多的次数为:" + max);
}
public static void main(String[] args) {
String strInput = new String("aavzcadfdsfsdhshgWasdfasdf");//网上给的代码加个"W",就不能满足需求了
doString(strInput);
}
}
分享到:
相关推荐
金山Java笔试面试题.zip_面试资料下载
北京金山WPS软件工程师面试题及答案,做WPS的二次开发
腾讯,金山等公司面试题小结,有部分附上答案
│ C++面试题大全.doc │ c与c++面试题汇总.doc │ java面试题集.txt │ ├─C++笔试题 │ (1)C,C++经典问题,及面试笔试题 .txt │ (2)cc++.txt │ (3)笔试题2.doc │ (4)笔试题.doc │ (5)想成为嵌入式程序员应...
金山公司面试题 指针的面试题 ,详细答案。对今后面试有很大帮助
总计了2018年金山WPS面试题目及答案,希望大家早日找到合适的工作。
360的面试题,对想面试360的童鞋有帮助哦
金山 笔试 面试 题目 大全 kingsoft webmaster ,the game ,the same
C++面试题(包含华为,金山腾讯等题集)包含全面,知己知彼方能百战不殆
+微软+东软+百度+思科+金山+等公司面试题
多个公司的面试题,华为,阿里巴巴,百度,金山
16个经典面试题 33条Net经典面试题目及答案 50道世界500强面试题目及评点 2009c++面试试题 2009会计面试题 …… …… …… 中国网络通信有限公司,天津网通笔试题 中兴集成电路笔试题推荐 中兴软件工程师面试题目
c++面试题汇总,包括程序员宝典,面试试题,c++面试宝典。
题有点叼,主要是java方面的试题,题不多,但从基本语言到高级应用都有涉及
│ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ 孙卫琴精通struts.基于MVC的.java.web设计与开发.pdf │ 学习Struts提供的和Form相关标签.txt │ 日企编码规范.doc │ 电信盈科...
金山软件的java面试题,很不错的东西,大家值得一看的啊
这是一本关于c c++程序员面试的电子书 里面包含了程序员面试基础知识 常见c语言面试题 程序员面试技巧 华为面试题 百度面试题 金山面试题 腾讯面试题 中兴面试题 google面试题 绝对是经典
金山软件 测试类笔试 题目: 1、const 用法,列举至少2 种
文档为笔者面试腾讯安平部、微信数据库、腾讯云Iaas运维、网易游戏sre、金山WPS运维开发的面试题,以及收集了一些往年师兄师姐的互联网运维岗/网络岗面试题,并附上答案!希望能给与大家学习、求职上的帮助!
软件测试高频面试题,适合应届毕业生或者功能测试的同学,突击面试技巧,跳槽前准备 包含: 个人情况如何介绍 ...如果需求阿里、百度、腾讯、字节跳动、京东、金山、拼多多等名企大厂面试题的也可以联系我