Java数据结构面试题,输出 最后一个 出现次数为1的字符
今天去面试,遇到一个数据结构题,给定一个字符串,输出 最后一个 出现次数为1的字符
回来研究了下,代码如下:
package com.pine.interview.test; import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map.Entry;
import java.util.Set; public class LinkedHashMapTest {
public static void main(String[] args) {
//1.统计 字符-出现次数
String str = "qweasdqeqwevqeburtuvcivb";
LinkedHashMap<Character,Integer> map = new LinkedHashMap<Character,Integer>();
for(int i=0;i<str.length();i++){
char ch = str.charAt(i);
if(map.containsKey(ch)){
map.put(ch,map.get(ch)+1);
}else{
map.put(ch,1);
}
}
//2.将 出现次数为1 的字符放入List中
Set<Entry<Character, Integer>> entrySet = map.entrySet();
// for(Entry<Character, Integer> entry : entrySet){//输出 字符-出现次数 映射
// System.out.println(entry.getKey()+"--->"+entry.getValue());
// } List<Character> characters = new ArrayList<Character>();
for(Entry<Character, Integer> entry : entrySet){
if(entry.getValue()==1){
characters.add(entry.getKey());
}
}
// for(Character character : characters){//输出 出现次数为1 的字符
// System.out.println(character);
// }
//3.输出 最后一个 出现次数为1 的字符
System.out.println(characters.get(characters.size()-1)); }
}
主要是使用LinkedHashMap这个类统计 字符-出现次数,
相比HashMap来说,LinkedHashMap是有序的,它相当于LinkedList+HashMap
好了,就这样吧~~~
Java数据结构面试题,输出 最后一个 出现次数为1的字符的更多相关文章
- java算法面试题:有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数 按值的降序排序,如果值相同则按键值的字母顺序
package com.swift; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; publi ...
- Java数据结构面试题
1.栈和队列的共同特点是(只允许在端点处插入和删除元素) 4.栈通常采用的两种存储结构是(线性存储结构和链表存储结构) 5.下列关于栈的叙述正确的是(D) A.栈是非线性结构B.栈是一种树状 ...
- java算法面试题:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个, 如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉的半个”。
package com.swift; import java.util.Scanner; public class Hanzi_jiequ { public static void main(Stri ...
- dos界面下执行java文件将错误输出到一个文本小技巧
如果dos下执行java出现错误,把错误记录到一个文档 正确时如图,输出结果为hello,我把String的s改为小写,出现错误,用2>命令输出到error.txt在当前目录就出现了error. ...
- C++数据结构面试题
原文:http://1527zhaobin.iteye.com/blog/1537110 一.判断链表是否存在环型链表问题: 说明:判断一个链表是否存在环,例如下面这个链表就存在环,n1--> ...
- java算法面试题:设计一个快速排序。双路快速排序,简单易于理解。
package com.swift; import java.util.ArrayList; import java.util.Collections; import java.util.Compar ...
- Java算法面试题:编写一个程序,将e:\neck目录下的所有.java文件复制到e:\jpg目录下,并将原来文件的扩展名从.java改为.jpg
package com.swift; import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; i ...
- java算法面试题:编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。
package com.swift; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File ...
- 从一道索引数据结构面试题看B树、B+树
题目1: Mysql数据库用过吧?l里面的索引是基于什么数据结构. 答:主要是基于Hash表和B+树 题目2: 很好请你说一下B+树的实现细节是什么样的?B-树和B+树有什么区别?联合索引在B+树中如 ...
随机推荐
- 【一天一道LeetCode】#98. Validate Binary Search Tree
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...
- PA 模块常用表2
SELECT * FROM pa_expenditure_items_all 项目支出 select *from pa_cost_distribution_lines_all 支出分配行 SELE ...
- AJAX+jQuery+ASP实现实时验证身份证信息是否已存在---人事系统
很多时候在网站上注册时,我们会发现,注册表单通常需要检查用户名和电子邮件地址的可用性:从而确保用户之间不拥有相同的用户名和电子邮件地址:一些网站喜欢在用户提交填写的用户信息时,做信息可用性的检查,而一 ...
- MySQL学习笔记_8_SQL语言基础复习
SQL语言基础复习 一.概述 SQL语句注释方式 1)以"#"开头直到行尾的所有内容都是注释 2)以"--"(--后还有一个空格)开头直到行尾的所有内容都是注释 ...
- 结构体:探析C#文件方式读写结构体
最近直在研究Net Micro Framework字体文件(tinyfnt)由于tinyfnt文件头部有段描述数据所以很想 定义个结构体像VC样直接从文件中读出来省得用流个个解析很是麻烦 没有想到在中 ...
- 海量数据挖掘MMDS week1: Link Analysis - PageRank
http://blog.csdn.net/pipisorry/article/details/48579435 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...
- 仿滴滴抢单倒计时的Demo
滴滴里面有一个下单完成之后等待界面的倒计时转圈的视图... 就是这个... 原理: 通过CAShapeLayer层添加到自己自定义的视图layer上... 设置ShapeLayer的path... 他 ...
- Intellij Idea配置提高速度
主要介绍一下Intellij Idea的关于速度和最大最大方法数目 提高速度 1.命令: 2.找到./Library/Preferences/IntelliJIdea2016.1/idea.vmopt ...
- Java关键字之finalize
Java中提供了finalize方法,在垃圾回收器在进行内存释放时会首先调用finalize,但会有一些误区. 1).对象可能不被垃圾回收. 2).垃圾回收并不等于"析构",fin ...
- Ext JS 5初探(三)
在上文提到了本地化文件的问题,然后在Ext JS 5的包里找了找,居然还没包含本地化包.我估计目前还不到考虑本地化的时候.在Sencha Touch中,是没有本地化包的,但是要让Ext JS也不包含本 ...