【普通算法】字符串字符及个数一致比较
来源:互联网 发布:姚明和奥尼尔对决数据 编辑:程序博客网 时间:2024/06/16 06:48
两句话:说实话,我之前两年疏于写代码,所以基本语法及简单算法都遗漏,故希望每日勤勉。
背景:2017年7月参加亚信面试题
题目如下:假设英文字符串aba与aab(或baa)相等(字符及个数一样),请比较两个不同的字符串是否相等。
解答:
import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Map.Entry;import java.util.Set;import java.util.TreeSet;public class CompareString { static List<String> total= new ArrayList<String>(); public static void main(String[] args) { String a="cbabcbabaacacaabc"; String b="cbabcbabaacacaba"; Set resultSet = new TreeSet(); CompareString cs = new CompareString(); Map<String,Integer> camap=cs.count(a); Map<String,Integer> cbmap=cs.count(b); boolean flag =false; for(String bbb:total){ if(camap.get(bbb)!=cbmap.get(bbb)){ System.out.println(camap.get(bbb)+"vs"+cbmap.get(bbb)); break; } flag=true; } System.out.println("字符串对比结果-->"+flag); } public Map count(String tmp){ Map<String,Integer> map = new HashMap<String,Integer>(); for(int i=0;i<tmp.length();i++){ String c = (String)(tmp.charAt(i)+""); if(map.get(c)==null){ map.put(c, 1); total.add(c); }else{ map.put(c, (int)map.get(c)+1); } }// for(Entry<String,Integer> e :map.entrySet()){// System.out.println(e.getKey()+""+e.getValue());// } return map; }}
扩展:
1、如果字符从文件读取特别长,如何提交效率,欢迎探讨?
分布式算法是不是可以解决这个问题?mapreduce的工作原理是什么、现在流行的处理日志的大数据的框架是如何工作?
阅读全文
0 0
- 【普通算法】字符串字符及个数一致比较
- 两个字符串比较,取出重复字符个数。 (原创)
- java统计字符串中字符及子字符串个数
- 统计字符串字符个数
- 判断字符串中字符最多的那一个及个数
- 查找一个字符串中最长的字符及个数
- 统计字符串中出现次数最多的字符及个数
- 求给定字符串中包含的字符及个数及最多字符是哪个?
- 查找字符串中出现最多的字符和个数(两种方法一个普通方法 一个是正则表达式方式)
- java字符串特殊替换及无法比较字符问题
- 算法:字符串编码 (将连续的字符替换成“连续出现的个数+字符”)
- 算法:一致哈希及C++实现
- 在一个字符串中,统计大写字母个数,小写字母个数,其他字符个数的四种算法
- 判断字符,字符串的个数
- 字符串长度 VS 字符个数
- 统计字符串中的字符个数
- 统计字符串中字符个数
- 字符串中字符的个数
- Java定时器
- 解决多张图片排在一起时产生的空隙
- [vijos NOIP模拟题]天神下凡 贪心+搜索
- 【c#】开机自启动
- Template模式
- 【普通算法】字符串字符及个数一致比较
- 共享内存
- Ubuntu MySQL安装
- 【JavaSE学习笔记】常用类介绍04_System,Date,Math,Random,Pattern
- 硬盘分区表知识——详解硬盘MBR
- String 常用方法
- 调用百度地图的javascript接口来查找地名并标注
- web前端面试
- Java_基础—Properties的概述和使用