import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
//字符串的处理
public class StringAction {
public static void main(String[] args){
f();
}
//题目:一个字符串中,哪个子串(长度要求大于等于2)重复出现次数最多,如果有多个子串重复次数相同,取长度最大的子串。
// 1、求出所有的字串
// 2、找出对应字串在字符串中出现的次数
// 3、在所有的次数中找出最大值
// 4、根据最大值找出对应的字符串
// 分步思想 , 一步步解决问题 详细解剖解题
public static void f(){
String str = "abcfabcdabce";
ArrayList<String> list = new ArrayList<String>();
for(int i=0;i<str.length();i++){
// System.out.println("i 的值为:"+i);
for(int j=2;j<str.length()-i+1;j++){
// System.out.println("j 的值为:"+j+" 此时截取的字段为:"+str.substring(i,j+i));
list.add(str.substring(i,j+i));
}
}
Map<String,Integer> sum = new HashMap<String,Integer>();
for(int i=0;i<list.size();i++){
// System.out.println("此时用于比较的值为:"+list.get(i));
String temp = list.get(i);
int index = 0;
for(int j=0;j<list.size();j++){
//出现一次加一次
if(list.get(j).equals(list.get(i))){
index++;
}
}
// System.out.println(temp+":出现的总次数为:"+index);
sum.put(temp, index);
}
//取最大值
int maxValue = sum.get(list.get(0));
for(int i=0;i<sum.size();i++){
// System.out.println("此时的值:"+sum.get(list.get(i)));
if(sum.get(list.get(i))>maxValue){
maxValue=sum.get(i);
}
}
//存储有最大值的字串
ArrayList<String> a = new ArrayList<String>();
for(int i=0;i<sum.size();i++){
if(sum.get(list.get(i))==maxValue){
// System.out.println(list.get(i));
a.add(list.get(i));
}
}
// 取长的
int length = a.get(0).length();
String value = null;
for(int i=0;i<a.size();i++){
if(a.get(i).length()>length){
value=a.get(i);
}
}
System.out.println("最大的字串为:"+value+" 出现的次数为:"+sum.get(value));
}
}
//求这个题目的优化解
分享到:
相关推荐
其中本程序包含获取字符串的长度,寻找字符串中的字符,寻找字符串中的字串,连接字符串,字符串的比较等。并且本程序包含菜单选项
java字符串处理的util工具类,也可以同时添加一些其他字符处理的方法,对于项目中特殊字符处理,完成项目中基本的字串符处理。
VC CString的常用操作,包括查找,插入,格式化,截取字串等,适合新手入门参考。
很明显的这就是一个字符串匹配问题。所以我先用一个传统的字符串比较方法来实现,为了提高效率,考虑到字符串匹配较好的算法有Brute force(暴力搜索)其预处理时间为O(0),匹配时间复杂度O(N*M);KMP的预处理...
全面说明C#对字符串的处理
用来删除一段字符串的字串,统计字符串的长度,字符串中英文字母,数字,空格数
VB之文件处理精彩编程-在ListBox快速搜寻字符串(5KB)
对字符串进行处理,能够截取字串中指定位置,指定长度的字符。 编译语言: C 编译器: C-Free 初级水平,仅供参考
2、 对指定的文本文件进行读操作,将每一行字符串保存到一个动态空间中(可用地址指针数组或链表,也可用STL,这个随便),并显示出该文本文件的行数,最好是显示到一个编辑框中,也可以用提示框显示;(30) 3、 ...
在asp网页中如果文字的宽度太长,就会使页面变形,必须将文字截取提定长度,vbscript中的字符处理函数是不区分(中/英),如此一来就必须自行编写一个函数来处得中英文混合字串的情况,此处用了一个简单的解决办法。
本文介绍的正是如何使用C#判断XML字符串是否含特殊字符并进行转换。 以下是几个特殊字符的对应实体。 < < 小于号 > > 大于号 & & 和 ' ‘ 单引号 "...
后来随着计算机的发展,非数值型数据的处理工作越来越多,于是有了字符串的概念。例如,在搜索引擎中输入“数据结构”,在浏览器中会出现与“数据结构”相关的关键词,这就是字符串匹配操作。 通过本实践项目的训练...
fox.ToLower()转化成小写字母 fox.ToUpper()转化成大写字母 fox.Trim()删除前后空格 fox.Trim(trimChars)删除其它字符 fox.TrimStart()删除前空格 fox.TrimEnd()删除后空格 fox.PadLeft(10)增加左边空格,使字串达到...
文章目录字符串中数字子串求和数字子串求和算法思路相应代码 字符串中数字子串求和 数字子串求和 【题目】 给定一个字符串s,求其中全部数字串所代表的数字之和。...考虑逻辑分析能力和边界处理问题
本软件是一个本地化工具,主要用于非资源格式的本地化工作,支持的种类包括非资源格式的 C 编译的程序中的 ASCII 字符串和 UniCode 字符串、非资源格式的 Delphi(C++ Builder)编译的程序的字符串、VB 编译的程序的...
文件搜索命令:grep 语法:grep -iv [指定字串] [文件] 功能描述:在文件中搜索字串匹配的行并...语法:cut -d '分隔字符串' -f fields #用于有特定分隔字符 cut -c 字符区间 #用于排列整齐的信息 选项参数: -d
9.1 字串的基本概念 9.2 字串的輸入與輸出 9.3 字串的處理 9.4 字串的指標陣列 9.5 字串處理在編碼上的應用 9.6 常犯的錯誤
摘要:Delphi源码,字符处理,日期转换,字符串 Delphi如何将日期转换成字符串呢?Delphi新手可参考的一个代码,源代码在Delphi中可完美编译运行,如示例截图所示。程序将借助Excel2000中的相关组件实现。 运行环境:...
针对现有基于过分割的手写体数字字符串识别算法的复杂度较高,以及基于无分割算法无法识别4位及以上长度字符串和准确率较低的问题,提出了基于掩模区域神经网络(Mask-RCNN)的无分割手写数字字符串的识别算法。...
字符串 注意单引号和双引号的区别 注意转义字符\的使用\\,\”,\$ 注意使用8进制或16进制字符表示 \xf6 echo “H\xf6me”;//需要察看是否支持此类文字编码 ———————输出结果—————————————- H鰉e...