判断一个字符串中的字符是否唯一
来源:互联网 发布:涉密网络分级保护 编辑:程序博客网 时间:2024/06/06 13:11
http://www.cricode.com/254.html
实现一个算法来判断一个字符串中的字符是否唯一(即没有重复).不能使用额外的数据结构。 (即只使用基本的数据结构)
首先,你可以问面试官,构成字符串的字符集有多大?是ASCII字符,还是只是26个字母? 还是有更大的字符集,对于不同的情况,我们可能会有不同的解决方案。
如果我们假设字符集是ASCII字符,那么我们可以开一个大小为256的bool数组来表征每个字 符的出现。数组初始化为false,遍历一遍字符串中的字符,当bool数组对应位置的值为真, 表明该字符在之前已经出现过,即可得出该字符串中有重复字符。否则将该位置的bool数组 值置为true。代码如下:
该算法的时间复杂度为O(n)。我们还可以通过位运算来减少空间的使用量。 用每一位表征相应位置字符的出现。对于ASCII字符,我们需要256位,即一个长度为8的int 数组a即可。这里的关键是要把字符对应的数字,映射到正确的位上去。比如字符’b’对应的 代码是98,那么我们应该将数组中的哪一位置为1呢?用98除以32,得到对应数组a的下标: 3。98对32取模得到相应的位:2。相应代码如下:
两个算法的本质其实是一样的,只不过一个用bool单元来表征字符出现,一个用位来表征。 完整代码如下:
如果字符集只是a-z(或是A-Z),那就更好办了,用位运算只需要一个整型数即可。
【JAVA实现】
0 0
- 判断一个字符串中的字符是否唯一
- 判断一个字符串中的字符是否唯一
- 判断一个字符串中的字符是否唯一
- 判断一个字符串中的字符是否唯一
- 如何判断一个字符串中的字符是否唯一
- java 判断一个字符串中的字符是否唯一
- cc150:判断一个字符串中的字符是否唯一
- 1.1判断一个字符串中的字符是否唯一
- 1、判断一个字符串中的字符是否唯一
- 判断一个字符串字符是否唯一
- 判断字符串中的字符是否唯一
- 判断字符串中的字符是否唯一
- 判断一个字符串中的字符是否唯一(只用基本数据结构)
- 1.判断一个字符串中的字符是否唯一(CC150)---编程笔记
- CTCI系列--1.1 判断一个字符串中的字符是否唯一(C语言)
- 经典算法面试题目-判断一个字符串中的字符是否唯一(1.1)
- Arrays_Strings 判断字符串中的字符是否唯一@CareerCup
- 判断字符串中的字符是否具有唯一性
- ORACLE中如何查看表空间
- 趴一趴如何用最简单的方式从html form表单中获取到数据
- 【Deep Learning】Face Detection and Alignment
- AndFix解析——(中)
- Linux 文件打开数(fd)总结
- 判断一个字符串中的字符是否唯一
- java的三种注释
- DEVOPS的支撑服务:K8S容器管理与应用部署
- LINUX : 理解文件系统 实现挂载
- ExpandableListView使用小技巧
- 【u122】迎接仪式
- 高通平台添加自己的product后com.qualcomm.qti.tetherservice不停crash
- FMDB创建数据库的增删改查
- Dependency与DependencyManagement的区别