`
devon.k
  • 浏览: 90595 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

剔除字符串中重复字符

阅读更多
功能:去除掉一串字符中的重复的字符
独特之处是:使用了一个标识数组fArr来标识一个字符是否已经出现过。
            fArr中每一个元素可标识32个字符,int用32位,一位可标识一个字符。
	public String distinctChar(String source){
		char[] srcArr = source.toCharArray();
		//标识数组 2048 = 65535/32 + 1
		//每一位(Bit)都标识一个字符,1表示字符已经出现过,0表示字符尚未出现,初始全为0
		int[] fArr = new int[2048];
		int shift;		
		StringBuffer dStr = new StringBuffer("");
		for(int i = srcArr.length - 1; i >= 0; i --){
			shift = 1;
			shift <<= srcArr[i] % 32;
			if(0 == (shift & fArr[srcArr[i]>>5])){
				dStr.append(srcArr[i]);
				fArr[srcArr[i]>>5] += shift;
			}
		}	
		return dStr.toString();
	}


这个本人自己设计的一个算法,大虾们看看,有什么地方需要改进的,望能不吝赐教。。。
分享到:
评论

相关推荐

    matlab简单代码-《如何在 MATLAB 中删除字符串中的空格?》实例教程下载

    在 MATLAB 中,删除字符串中的空格是一个常见的任务,特别是在处理数据清理或文本分析时。MATLAB 提供了几种方法来实现这一目标,包括 `isspace()`、`find()`、`strrep()`、`regexprep()` 以及 `deblank()` 函数。...

    已知一个字符串的长度,剔除其中所有的空格字符。请从字符串最后一个字符开始逐个向前判断、并进行处理。

    已知一个字符串的长度,剔除其中所有的空格字符。请从字符串最后一个字符开始逐个向前判断、并进行处理。

    Java第6章 字符串 含源代码

    在Java编程语言中,字符串是极其重要且常用的数据类型,用于处理文本信息。本章将深入探讨Java中的字符串处理,包括其基础知识、方法以及实际应用。以下是对Java字符串的详细讲解: 1. **字符串对象与字面量** 在...

    485 改字符串转数组好用_485该字符串_

    4. 处理特殊字符:如果字符串中包含非数字字符,如上述例子中的"C",可能需要将其剔除或替换,这可以通过“字符串查找与替换”函数实现。 在描述中提到的"485 改字符串转数组好用.vi"文件很可能是一个LabVIEW虚拟...

    字符串处理

    在Python编程语言中,字符串处理是一项基础且重要的技能,它涉及到字符串的格式化、转义、拼接、分割以及各种转换方法。以下是对给定文件信息中提到的字符串处理知识点的详细解析: ### 1. 字符串的格式化 #### `...

    输入一行字符串,将其中的数字删除,打印其余字符

    C语言 输入一行字符串,将其中的数字删除,打印其余字符

    字符串的替换

    剔除一个字符串中的全部非字符,例如将“a1ssds23ds5”中非数字字符全部剔除后得到字符串“1235”。

    10亿个字符串的排序问题

    除了上述方法,还可以考虑其他优化策略,例如使用布隆过滤器(Bloom Filter)预先剔除重复的字符串,降低排序的复杂性;或者利用数据压缩技术减小内存占用,如使用LZ4或Zstd等高效压缩算法。 在实现过程中,我们还...

    如何从字符串中删除回车

    标题“如何从字符串中删除回车”所指的就是如何去除字符串中的换行符,通常包括回车符(CR,Carriage Return)和换行符(LF,Line Feed)。在不同的操作系统和编程语言中,这两者的表示方式可能略有差异。这里,描述...

    汇编语言编写字符串反转,并抽掉空格

    汇编语言编写的字符串反转程序,有简单注释,专门给学生党过作业

    批量多文件简单改名,剔除字符,添加字符,替换字符,改扩展名,ANSI编码编写

    2.剔除字符:一般用于多个文件批量剔除指定字符串改名。 3.添加字符:一般用于多个文件批量添加指定字符串改名。 4.替换字符:一般用于多个文件批量替换指定字符串改名。 5.改扩展名:一般用于多个文件批量修改后缀...

    总结C#删除字符串数组中空字符串的几种方法

    在C#编程中,删除或过滤掉字符串数组中的空字符串是一项常见的任务,特别是在处理用户输入、数据清洗或数据处理场景中。以下将详细介绍三种方法来实现这一目标。 ### 方式一:使用Lambda表达式 Lambda表达式是C# ...

    Oracle截取字符串去掉字段末尾指定长度的字符

    lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节 length(string)计算string所占的字符长度:返回字符串的长度,单位是字符 ...PS:oracle去掉字符串中所有指定字符 Selec

    生成字符串的全排列,可以用回溯法实现

    如果在中间过程中发现当前的排列不可能是有效的全排列(例如,某个字符出现了超过其在原字符串中应有的次数),则回溯并尝试下一个字符。 以下是一个简单的Python实现: ```python def permute(s): if len(s) == ...

    过滤特殊字符及表情符

    - **字符串函数**:Java中的`String.replaceAll()`方法,可以结合正则表达式实现过滤。 - **自定义过滤器**:对于更复杂的需求,可以编写自定义过滤器,如提供的`TextWatcherImpl.java`和`MaxLengthInputFilter....

    edittext过滤字符串中的表情

    我们可以遍历输入字符串的每一个字符,检查其Unicode值是否在这段范围内,如果是,则认为该字符是一个表情并将其剔除。 以下是一种简单的实现方式: 1. 创建一个包含所有表情Unicode值的集合,或者直接使用已有的...

    基于CPU-GPU异构体系结构的并行字符串相似性连接方法.docx

    基于 CPU-GPU 异构体系结构的并行字符串相似性连接方法 本文主要研究基于 CPU-GPU 异构体系结构的并行字符串相似性连接方法,以提高相似性连接算法的处理效率。该方法通过将任务进行分解并运行在不同处理器架构上,...

    javascript获取重复次数最多的字符.docx

    在本篇文章中,我们将探讨如何使用JavaScript来找出一个字符串中重复出现次数最多的字符及其重复次数。这个问题不仅涉及到基本的字符串处理技术,还可能涉及算法优化,尤其是对于较长的字符串。 #### 代码实现 ...

    可以输入数字的小应用程序图形用户界面

    在计算机科学中,GUI是用户与软件交互的主要方式,提供了直观的按钮、文本框、菜单等元素。在本例中,该程序可能是一个简单的计算器或者数据输入工具,让用户能够方便地输入数字并进行相应的计算或操作。 【描述】:...

    RemoveEmoji:演示显示如何从字符串中删除表情符号字符串

    项目"RemoveEmoji"的核心是找到一种方法来识别并剔除字符串中的表情符号。这通常涉及到遍历字符串中的每一个字符,检查其是否为表情符号。在Objective-C中,可以使用`enumerateCharactersInRange:`方法配合`unichar`...

Global site tag (gtag.js) - Google Analytics