`
1140566087
  • 浏览: 560268 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
博客专栏
2c4ae07c-10c2-3bb0-a106-d91fe0a10f37
c/c++ 入门笔记
浏览量:18571
3161ba8d-c410-3ef9-871c-3e48524c5263
Android 学习笔记
浏览量:314543
Group-logo
J2ME 基础学习课程集
浏览量:18796
A98a97d4-eb03-3faf-af96-c7c28f709feb
Spring 学习过程记录...
浏览量:17600
社区版块
存档分类
最新评论

字符串处理 字串问题

阅读更多
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));
		
	}
}
//求这个题目的优化解
0
0
分享到:
评论

相关推荐

    函数:字符串s1中删除串s2里包含的所有字符(c语言)

    在实际应用中,这个函数可以用于各种字符串处理任务,例如,删除字符串中的特殊字符、去除字符串中的重复字符等等。 此外,这个函数也可以用于实现其他字符串操作,例如,查找字符串中某个子串的出现次数、将字符串...

    java 编写的字符串处理程序

    其中本程序包含获取字符串的长度,寻找字符串中的字符,寻找字符串中的字串,连接字符串,字符串的比较等。并且本程序包含菜单选项

    求一个字符串中的连续出现次数最多的字串

    根据给定的文件信息,我们可以总结出以下关于“求一个字符串中的连续出现次数最多的字串”的相关知识点: ...综上所述,该问题是字符串处理中的一个典型实例,通过合理的算法设计可以有效地解决。

    java字符串基本处理工具类

    java字符串处理的util工具类,也可以同时添加一些其他字符处理的方法,对于项目中特殊字符处理,完成项目中基本的字串符处理。

    C#字符串处理的相关操作

    C#字符串处理的相关操作 C#中的字符串处理是指对字符串类型的操作,包括字符串的不可变性、访问字符串中的元素、字符串的常用方法等。 字符串的不可变性 在C#中,字符串是不可变的,意味着一旦创建了字符串,就不...

    随机生成32位字符串

    在IT领域,字符串是编程中常见且重要的数据类型,用于表示和处理文本信息。VB(Visual Basic)是一种经典的、基于事件驱动的编程语言,由微软公司开发,它提供了丰富的库函数和工具,使得生成各种字符串操作变得简单...

    VB.NET 字符串与二进制间的转换

    在VB.NET编程中,处理数据时经常会遇到将字符串与二进制数据进行转换的情况。这是因为字符串是人类可读的数据表示形式,而二进制数据则更适用于存储和传输。了解如何在两者之间进行转换是至关重要的,特别是当你需要...

    在文本中查找替换字符串程序

    这个程序“文本中查找替换字符串程序”正是为了解决这样的问题而设计的。它可以帮助用户高效地在TXT文本文件中定位特定的字符串,并将这些字符串替换为新的内容,同时保留原始文件的完整性,通过另存为的方式避免...

    求两个字符串的最长公共字串

    - `#include&lt;string.h&gt;`:引入字符串处理函数库。 - `using namespace std;`:声明使用标准命名空间。 - `#define M 100`:定义常量`M`为100,通常用于指定字符串的最大长度。 ```cpp char* LCS(char left[], char ...

    nodejs+字符串的模式匹配+正则表达式+判断获取字符串的某些需求

    正则表达式是一种强大的文本处理工具,能够帮助开发者高效地完成字符串的查找、替换等操作。在JavaScript中,正则表达式同样发挥着重要作用,尤其是在Node.js环境中进行字符串模式匹配时。本文将详细介绍如何在...

    pb字符串转十六进制及各进制之间转换源码

    PowerBuilder作为一款老牌的客户端/服务器应用程序开发工具,提供了丰富的功能,包括字符串处理和数据类型转换。本篇将详细介绍如何在PowerBuilder 9中进行字符串转十六进制以及不同进制之间的转换。 在Power...

    汉字字符串拼音排序-QT、C++

    通过阅读和理解这些代码,开发者可以学习到如何在C++和QT环境下有效地处理中文字符串的拼音排序问题。 总之,"汉字字符串拼音排序-QT、C++"这个主题涵盖了C++的字符串操作、QT的QString类、Unicode支持以及中文字符...

    KMP算法与传统字符串搜索算法对比分析-C语言

    很明显的这就是一个字符串匹配问题。所以我先用一个传统的字符串比较方法来实现,为了提高效率,考虑到字符串匹配较好的算法有Brute force(暴力搜索)其预处理时间为O(0),匹配时间复杂度O(N*M);KMP的预处理...

    vbs 获取字符串(截取字串)

    总之,掌握VBScript中的字符串处理函数对编写有效的自动化脚本至关重要。它们提供了一种灵活的方式,帮助我们解析、操作和组合字符串,满足各种编程需求。通过不断实践和探索,你可以更熟练地运用这些工具来解决实际...

    python excel中替换字符串

    使用`openpyxl`库,你可以逐个处理单元格,查找并替换字符串。 以下是一个简单的例子,展示了如何使用`openpyxl`替换Excel中的字符串: ```python # 导入必要的库 import openpyxl # 加载Excel文件 workbook = ...

    C++語言中的字串處理

    C++语言中的字符串处理涉及到多个方面的知识点,本章节详细探讨了C++中字符串的基本概念、如何进行输入输出、处理字符串、使用指针数组以及在编码上的应用,并且总结了常见的错误。接下来,我们将详细阐述这些知识点...

    在ListBox快速搜寻字符串(5KB)...

    在大型数据集合中,实现快速搜索字符串的功能对于提高用户体验至关重要。本篇文章将探讨如何在ListBox中实现高效的字符串搜索,从而帮助用户快速定位所需信息。 首先,我们要了解ListBox的基本操作。ListBox可以...

    求两个字符串的最长公共字串。

    求两个字符串的最长公共子串是一个典型的字符串处理问题,在实际应用中有着广泛的需求。通过对暴力法和动态规划法的理解与实践,可以更好地掌握字符串处理的相关技术。希望本文能够帮助读者深入理解这一问题,并在...

    字符串查找,删除,提取

    无论是进行数据分析、文本处理还是软件开发,我们经常需要对字符串进行查找、删除或提取特定部分。以下是对标题和描述中涉及的知识点的详细解释: 1. **删除字符串中指定字符间的子串**: 在这个任务中,我们需要...

    Android 带小数点的字符串格式化为固定位数

    这涉及到对数字的处理和字符串拼接。 1. **手动拼接法**:最基础的方法是通过字符串的截取、判断和拼接来实现。首先,获取小数点的位置,然后分别处理小数点前后的部分。如果不足指定位数,就在前面补0。这种方法...

Global site tag (gtag.js) - Google Analytics