博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1.1
阅读量:2382 次
发布时间:2019-05-10

本文共 650 字,大约阅读时间需要 2 分钟。

Implement an algorithm to determine if a string has all unique characters. What if you can not use additional data structures?

1)使用附加结构:

这里需要假定的是字符都是ASCII码(1个字节表表示),大小256的为扩展ASCII码(0-255),128为标准ASCII(0-127)

bool hasAllUniqueChar(string str){	int a[256];	memset(a,0,sizeof(a));	for(int i=0;i
1) return false; } return true;}

评:答案中hash数组使用的不是int而是bool这样能减少空间的开销,这是我所没有想到的

2)不使用附加结构:

bool hasAllUniqueChar(string str){	for(int i=0;i
评:答案中提出当字符都是小写字母的时候可以使用位运算来操作,只需要一个整形变量,空间复杂度为O(1),代码如下:

bool hasAllUniqueChar(string str){	int test=0;	for(int i=0;i
这儿使用了一个变量,如果任何附加变量也不使用的话,答案给出了当str结构可以破坏的时候对str进行排序,然后用两个指针i和j,不断向后移动,判断str[i]是否和str[j]相等。

转载地址:http://hfyab.baihongyu.com/

你可能感兴趣的文章
冒号和他的学生们(连载13)——范式总结
查看>>
A Proposal on Organization of Information System
查看>>
冒号和他的学生们(连载2)——首轮提问
查看>>
正则表达式与文件格式化处理
查看>>
Java EE互联网轻量级框架整合开发
查看>>
Java语言程序设计(基础篇)
查看>>
大型网站技术架构:核心原理与案例分析
查看>>
JAVA并发编程实战
查看>>
RabbitMQ实战++高效部署分布式消息队列
查看>>
微服务设计
查看>>
Spring Cloud微服务实战
查看>>
C++ static 语义
查看>>
C++ static 语义
查看>>
Linux Cgroups概述
查看>>
centos7 硬盘性能测试
查看>>
cgroup使用--cpu资源限制
查看>>
cgroup使用--memory资源限制
查看>>
Redis 单机环境搭建
查看>>
elasticsearch 单机环境搭建
查看>>
spark 独立模式部署
查看>>