功能:去除掉一串字符中的重复的字符
独特之处是:使用了一个标识数组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 中删除字符串中的空格?.docx文档,中文教程。
Java第6章 字符串 含源代码 Java第6章 字符串 含源代码 Java第6章 字符串 含源代码 Java第6章 字符串 含源代码 Java第6章 字符串 含源代码
C语言 输入一行字符串,将其中的数字删除,打印其余字符
剔除一个字符串中的全部非字符,例如将“a1ssds23ds5”中非数字字符全部剔除后得到字符串“1235”。
汇编语言编写的字符串反转程序,有简单注释,专门给学生党过作业
2.剔除字符:一般用于多个文件批量剔除指定字符串改名。 3.添加字符:一般用于多个文件批量添加指定字符串改名。 4.替换字符:一般用于多个文件批量替换指定字符串改名。 5.改扩展名:一般用于多个文件批量修改后缀...
C#中要如何才能删除一个字符串数组中的空字符串呢?下面的文章会介绍多种方式来实现清除数组中的空字符串,以及在.net中将字符串数组中字符串为空的元素去除。
下面的语句用空格字符替换换行符。sValueWithLineBreaks.Replace(Environment.NewLine,“”);希望有帮助。
有时我们会碰到类似下面这样的 unicode 字符串: u'\xe4\xbd\xa0\xe5\xa5\xbd' 这明显不是一个正确的 unicode 字符串,可能是在哪个地方转码转错了。 我们要想得到正确的 unicode 字符串首先就必须先将这个字符串转...
NULL 博文链接:https://913.iteye.com/blog/2039455
期末复习ING,录个小视屏O(∩_∩)O~,教材中的案例
空白来显示整洁的输出, 以及如何剔除字符串中多余的空白; 如何使用整数和浮点数; 使用数值数据时需要注意的意外行为。 你还学习了如何编写说明性注释, 让代码对你和其 他人来说更容易理解。 最后, 你了解了让...
--去除字段中符号,只保留数字和字母sql-- create FUNCTION DBO.REMOVE_SYMBLE(@S VARCHAR(100)) RETURNS VARCHAR(100) AS BEGIN DECLARE @SQL VARCHAR(100) SET @SQL=''
一篇文章由字母‘A-Z’和’a-z‘、空格、标点符号组成,回文串只有字母组成,找最长的回文串时可以剔除标点符号和空格(剔除标点符号和空格后的回文串长度不超过2000),字母不考虑大小写(如字母A与a相同)但输出回文...
我们在项目中如果写到注册的时候,用户输入空格,我们怎么来剔除空格呢? 下面是我经常用到的js与大家分享下: 第一种:循环检查替换 [javascript] 代码如下: //供使用者调用 function trim(s){ return trimRight...
substr(string ,1,3) 函数解读:取string 中重左往右取3字长的字符串。 结果为:str 从右往左呢? 应该有另一个函数来提供这样的功能吧! 事实上,从右往左也是这个函数 只是参数的不同而已。 substr(String,-1,3) ...
主要介绍了JS去掉字符串前后空格、阻止表单提交的实现代码,代码简单易懂,非常不错,具有参考借鉴价值,需要的朋友可以参考下
# 结尾非零数的奇偶性 # 给你一个正整数列表 L, 判断列表内所有数字乘积的最后一个非零数字...# 在上题的基础上的改造题, 这里直接用另一种方式字符串来处理, 转换成字符串后剔除掉所有的0后的的部分能否整除2即可判断
2.c模拟weindow下getch.c某月天数.c逆序.c逆序四位整数.c排序.c判断某个...剔除数组中指定规则的元素.c五虎将.c细胞生命.c显示当前时间.c小型银行系统.c一个整数串中重复的数及其重复次数.c移位运算.c隐式转换.c约瑟夫...