一个字符串中可能包含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);
}
}
分享到:
相关推荐
"北京金山WPS软件工程师面试题及答案"这个标题表明这是一个与面试相关的资料,主要针对的是北京金山公司的WPS软件工程师职位。金山WPS是知名的办公软件套件,包括文字处理、表格制作和演示文稿等功能,其二次开发则...
腾讯,金山等公司面试题小结,有部分附上答案
│ C++面试题大全.doc │ c与c++面试题汇总.doc │ java面试题集.txt │ ├─C++笔试题 │ (1)C,C++经典问题,及面试笔试题 .txt │ (2)cc++.txt │ (3)笔试题2.doc │ (4)笔试题.doc │ (5)想成为嵌入式程序员应...
金山公司作为知名的软件开发商,其Java笔试面试题集是求职者准备面试的重要参考资料。这份压缩包包含了一系列针对Java程序员的测试题目,旨在评估候选人的基础知识、编程能力、问题解决技巧以及对Java生态系统的理解...
金山 笔试 面试 题目 大全 kingsoft webmaster ,the game ,the same
根据提供的信息,我们可以总结出这份文档包含了针对360...以上是对“金山360面试题”中涉及的一些关键知识点的总结。这些问题涵盖了软件开发、测试、系统管理等多个方面,对于准备参加360公司面试的人来说非常有用。
### 金山WPS面试题目解析:虚函数的实现机制 #### 概述 本文将针对一份金山WPS面试题目中的核心知识点——虚函数的实现机制进行深入探讨。虚函数是C++语言中实现多态性的重要工具之一,通过虚函数可以实现通过基类...
该标签表明了这份资源的主题是计算机面试题,涵盖了腾讯、华为、金山等大型企业面试题。 部分内容: 1. 判断链表中是否有环:该问题要求编写一个函数来判断链表中是否有环。解决方法是使用两个指针,一个指针每次...
16个经典面试题 33条Net经典面试题目及答案 50道世界500强面试题目及评点 2009c++面试试题 2009会计面试题 …… …… …… 中国网络通信有限公司,天津网通笔试题 中兴集成电路笔试题推荐 中兴软件工程师面试题目
这份"C++面试题(包含华为,金山腾讯等题集)"旨在帮助应聘者充分准备,了解企业可能出的题目类型和难度。 1. **基础知识**:面试时,面试官会检查你对C++的基础概念的理解,如面向对象编程(OOP)的三大特性(封装...
金山公司的面试题历来以深度和实用性著称,这些题目和解答无疑可以帮助准备面试的人更好地应对可能出现的挑战。 指针是C++中的一个核心概念,它存储的是变量在内存中的地址。通过指针,我们可以直接操作和修改内存...
此题要求手动实现字符串转整数的功能,即模拟 `atoi()` 函数的行为。首先需要去除字符串中的空白字符,然后处理正负号,接着遍历每个字符,将其转换为数字并累加。 #### 5.3 缓冲区数据移动 题目要求实现 C 语言...
│ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ 孙卫琴精通struts.基于MVC的.java.web设计与开发.pdf │ 学习Struts提供的和Form相关标签.txt │ 日企编码规范.doc │ 电信盈科...
这是一本关于c c++程序员面试的电子书 里面包含了程序员面试基础知识 常见c语言面试题 程序员面试技巧 华为面试题 百度面试题 金山面试题 腾讯面试题 中兴面试题 google面试题 绝对是经典
金山软件 测试类笔试 题目: 1、const 用法,列举至少2 种
这份"c++面试题汇总"集合了程序员宝典、面试试题和C++面试宝典等多个资源,旨在帮助求职者全面准备C++相关的面试。以下将对一些关键知识点进行详细阐述: 1. **基础语法**: - **变量与数据类型**:理解基本数据...
对于求职者来说,掌握这两种语言的基本知识和高级特性是进入像华为、阿里巴巴、百度、金山这样的知名公司面试时必不可少的技能。下面,我们将深入探讨这些公司可能涉及的C++和C语言面试题中的关键知识点。 1. **C++...
接下来是Google的面试题,众所周知,Google对技术要求极高,他们的题目可能会涵盖算法与数据结构,如排序、查找、图论问题等。同时,Google注重代码质量,可能会考察C++11/14/17等新标准的使用,以及异常处理和错误...
软件测试高频面试题,适合应届毕业生或者功能测试的同学,突击面试技巧,跳槽前准备 包含: 个人情况如何介绍 ...如果需求阿里、百度、腾讯、字节跳动、京东、金山、拼多多等名企大厂面试题的也可以联系我
### 知识点总结 #### 运算符相关 1. **重载运算符的实现:** - 在C++中,可以通过定义成员函数或友元函数的方式对运算符...以上内容综合了珠海金山WPS面试中所提及的核心知识点,希望能帮助理解和复习相关技术细节。