功能:去除掉一串字符中的重复的字符
独特之处是:使用了一个标识数组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 提供了几种方法来实现这一目标,包括 `isspace()`、`find()`、`strrep()`、`regexprep()` 以及 `deblank()` 函数。...
已知一个字符串的长度,剔除其中所有的空格字符。请从字符串最后一个字符开始逐个向前判断、并进行处理。
在Java编程语言中,字符串是极其重要且常用的数据类型,用于处理文本信息。本章将深入探讨Java中的字符串处理,包括其基础知识、方法以及实际应用。以下是对Java字符串的详细讲解: 1. **字符串对象与字面量** 在...
4. 处理特殊字符:如果字符串中包含非数字字符,如上述例子中的"C",可能需要将其剔除或替换,这可以通过“字符串查找与替换”函数实现。 在描述中提到的"485 改字符串转数组好用.vi"文件很可能是一个LabVIEW虚拟...
在Python编程语言中,字符串处理是一项基础且重要的技能,它涉及到字符串的格式化、转义、拼接、分割以及各种转换方法。以下是对给定文件信息中提到的字符串处理知识点的详细解析: ### 1. 字符串的格式化 #### `...
C语言 输入一行字符串,将其中的数字删除,打印其余字符
剔除一个字符串中的全部非字符,例如将“a1ssds23ds5”中非数字字符全部剔除后得到字符串“1235”。
除了上述方法,还可以考虑其他优化策略,例如使用布隆过滤器(Bloom Filter)预先剔除重复的字符串,降低排序的复杂性;或者利用数据压缩技术减小内存占用,如使用LZ4或Zstd等高效压缩算法。 在实现过程中,我们还...
标题“如何从字符串中删除回车”所指的就是如何去除字符串中的换行符,通常包括回车符(CR,Carriage Return)和换行符(LF,Line Feed)。在不同的操作系统和编程语言中,这两者的表示方式可能略有差异。这里,描述...
汇编语言编写的字符串反转程序,有简单注释,专门给学生党过作业
2.剔除字符:一般用于多个文件批量剔除指定字符串改名。 3.添加字符:一般用于多个文件批量添加指定字符串改名。 4.替换字符:一般用于多个文件批量替换指定字符串改名。 5.改扩展名:一般用于多个文件批量修改后缀...
在C#编程中,删除或过滤掉字符串数组中的空字符串是一项常见的任务,特别是在处理用户输入、数据清洗或数据处理场景中。以下将详细介绍三种方法来实现这一目标。 ### 方式一:使用Lambda表达式 Lambda表达式是C# ...
lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节 length(string)计算string所占的字符长度:返回字符串的长度,单位是字符 ...PS:oracle去掉字符串中所有指定字符 Selec
如果在中间过程中发现当前的排列不可能是有效的全排列(例如,某个字符出现了超过其在原字符串中应有的次数),则回溯并尝试下一个字符。 以下是一个简单的Python实现: ```python def permute(s): if len(s) == ...
- **字符串函数**:Java中的`String.replaceAll()`方法,可以结合正则表达式实现过滤。 - **自定义过滤器**:对于更复杂的需求,可以编写自定义过滤器,如提供的`TextWatcherImpl.java`和`MaxLengthInputFilter....
我们可以遍历输入字符串的每一个字符,检查其Unicode值是否在这段范围内,如果是,则认为该字符是一个表情并将其剔除。 以下是一种简单的实现方式: 1. 创建一个包含所有表情Unicode值的集合,或者直接使用已有的...
基于 CPU-GPU 异构体系结构的并行字符串相似性连接方法 本文主要研究基于 CPU-GPU 异构体系结构的并行字符串相似性连接方法,以提高相似性连接算法的处理效率。该方法通过将任务进行分解并运行在不同处理器架构上,...
在本篇文章中,我们将探讨如何使用JavaScript来找出一个字符串中重复出现次数最多的字符及其重复次数。这个问题不仅涉及到基本的字符串处理技术,还可能涉及算法优化,尤其是对于较长的字符串。 #### 代码实现 ...
在计算机科学中,GUI是用户与软件交互的主要方式,提供了直观的按钮、文本框、菜单等元素。在本例中,该程序可能是一个简单的计算器或者数据输入工具,让用户能够方便地输入数字并进行相应的计算或操作。 【描述】:...
项目"RemoveEmoji"的核心是找到一种方法来识别并剔除字符串中的表情符号。这通常涉及到遍历字符串中的每一个字符,检查其是否为表情符号。在Objective-C中,可以使用`enumerateCharactersInRange:`方法配合`unichar`...