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工具类,也可以同时添加一些其他字符处理的方法,对于项目中特殊字符处理,完成项目中基本的字串符处理。
C#字符串处理的相关操作 C#中的字符串处理是指对字符串类型的操作,包括字符串的不可变性、访问字符串中的元素、字符串的常用方法等。 字符串的不可变性 在C#中,字符串是不可变的,意味着一旦创建了字符串,就不...
在IT领域,字符串是编程中常见且重要的数据类型,用于表示和处理文本信息。VB(Visual Basic)是一种经典的、基于事件驱动的编程语言,由微软公司开发,它提供了丰富的库函数和工具,使得生成各种字符串操作变得简单...
在VB.NET编程中,处理数据时经常会遇到将字符串与二进制数据进行转换的情况。这是因为字符串是人类可读的数据表示形式,而二进制数据则更适用于存储和传输。了解如何在两者之间进行转换是至关重要的,特别是当你需要...
这个程序“文本中查找替换字符串程序”正是为了解决这样的问题而设计的。它可以帮助用户高效地在TXT文本文件中定位特定的字符串,并将这些字符串替换为新的内容,同时保留原始文件的完整性,通过另存为的方式避免...
- `#include<string.h>`:引入字符串处理函数库。 - `using namespace std;`:声明使用标准命名空间。 - `#define M 100`:定义常量`M`为100,通常用于指定字符串的最大长度。 ```cpp char* LCS(char left[], char ...
正则表达式是一种强大的文本处理工具,能够帮助开发者高效地完成字符串的查找、替换等操作。在JavaScript中,正则表达式同样发挥着重要作用,尤其是在Node.js环境中进行字符串模式匹配时。本文将详细介绍如何在...
PowerBuilder作为一款老牌的客户端/服务器应用程序开发工具,提供了丰富的功能,包括字符串处理和数据类型转换。本篇将详细介绍如何在PowerBuilder 9中进行字符串转十六进制以及不同进制之间的转换。 在Power...
通过阅读和理解这些代码,开发者可以学习到如何在C++和QT环境下有效地处理中文字符串的拼音排序问题。 总之,"汉字字符串拼音排序-QT、C++"这个主题涵盖了C++的字符串操作、QT的QString类、Unicode支持以及中文字符...
很明显的这就是一个字符串匹配问题。所以我先用一个传统的字符串比较方法来实现,为了提高效率,考虑到字符串匹配较好的算法有Brute force(暴力搜索)其预处理时间为O(0),匹配时间复杂度O(N*M);KMP的预处理...
总之,掌握VBScript中的字符串处理函数对编写有效的自动化脚本至关重要。它们提供了一种灵活的方式,帮助我们解析、操作和组合字符串,满足各种编程需求。通过不断实践和探索,你可以更熟练地运用这些工具来解决实际...
使用`openpyxl`库,你可以逐个处理单元格,查找并替换字符串。 以下是一个简单的例子,展示了如何使用`openpyxl`替换Excel中的字符串: ```python # 导入必要的库 import openpyxl # 加载Excel文件 workbook = ...
C++语言中的字符串处理涉及到多个方面的知识点,本章节详细探讨了C++中字符串的基本概念、如何进行输入输出、处理字符串、使用指针数组以及在编码上的应用,并且总结了常见的错误。接下来,我们将详细阐述这些知识点...
在大型数据集合中,实现快速搜索字符串的功能对于提高用户体验至关重要。本篇文章将探讨如何在ListBox中实现高效的字符串搜索,从而帮助用户快速定位所需信息。 首先,我们要了解ListBox的基本操作。ListBox可以...
求两个字符串的最长公共子串是一个典型的字符串处理问题,在实际应用中有着广泛的需求。通过对暴力法和动态规划法的理解与实践,可以更好地掌握字符串处理的相关技术。希望本文能够帮助读者深入理解这一问题,并在...
无论是进行数据分析、文本处理还是软件开发,我们经常需要对字符串进行查找、删除或提取特定部分。以下是对标题和描述中涉及的知识点的详细解释: 1. **删除字符串中指定字符间的子串**: 在这个任务中,我们需要...
这涉及到对数字的处理和字符串拼接。 1. **手动拼接法**:最基础的方法是通过字符串的截取、判断和拼接来实现。首先,获取小数点的位置,然后分别处理小数点前后的部分。如果不足指定位数,就在前面补0。这种方法...