001 unique string
以后坚持每一个星期都写记到算法题,不论简单还是难,纯熟娱乐!
描写叙述:
实现一个算法来推断一个字符串中的字符是否唯一(即没有反复).不能使用额外的数据结构。
(即仅仅使用主要的数据结构)
代码:
#include <iostream>
#include <algorithm>
#include <string>
#include <assert.h> bool isUnique(const std::string& vStr)
{
if (vStr.size() == 0) return true;
bool Hash[128];
std::fill(Hash, Hash+128, false); for (unsigned int i=0; i<vStr.size(); ++i)
{
int Temp = vStr[i];
if (Hash[Temp]) return false;
Hash[Temp] = true;
} return true;
} bool isUnique2(const std::string& vStr)
{
if (vStr.size() == 0) return true;
int Bucket[4] = {0, 0, 0, 0}; for (unsigned int i=0; i<vStr.size(); ++i)
{
int Temp = vStr[i];
int Num = Temp/32;
int Mod = Temp%32; if (Bucket[Num] & (1<<Mod)) return false;
Bucket[Num] |= (1<<Mod);
} return true;
} int main()
{
std::string Test = "128&";
std::cout << isUnique2(Test) << std::endl;
_ASSERT(isUnique(Test) && isUnique2(Test)); system("pause");
return 0;
}
參考:http://hawstein.com/posts/1.1.html
001 unique string的更多相关文章
- LeetCode828. Unique Letter String
https://leetcode.com/problems/unique-letter-string/description/ A character is unique in string S if ...
- WHY IE AGAIN? - string.charAt(x) or string[x]?
近期今天在写一个"删除字符串中反复字符串"的函数,代码例如以下: 开门见山,重点 string.charAt(index) 取代 string[index] function re ...
- 一个简单的string类,读书看报系列(一)
对于这个类,写过程序的都知道应该含有的方法是 初始化.销毁.拼接.求长度.清除.判断是否为空等.还有一些操作符重载 一.先看初始化: 可以想到应该有默认构造的的.带有字符串的.带有默认字符的.还有一个 ...
- Android Unique Device ID
There are several occasions when the unique identifier of a device is required. For instance you nee ...
- linux下的usb抓包方法【转】
转自:http://blog.chinaunix.net/uid-11848011-id-4508834.html 1.配置内核使能usb monitor: make menuconfig ...
- java 面试大全
一.CoreJava 部分: 基础及语法部分: 1.面向对象的特征有哪些方面? [基础] 答:面向对象的特征主要有以下几个方面: 1)抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地 ...
- 【转载】linux下的usb抓包方法
1 linux下的usb抓包方法 1.配置内核使能usb monitor: make menuconfig Device Drivers --> ...
- linux下的usb抓包方法
1 linux下的usb抓包方法1.配置内核使能usb monitor: make menuconfig Device Drivers --> ...
- Python(五)模块
本章内容: 模块介绍 time & datetime random os sys json & picle hashlib XML requests ConfigParser logg ...
随机推荐
- springboot学习(四) 日志管理
1.简介 Spring Boot内部日志系统使用的是Commons Logging,但开放底层的日志实现.默认为会Java Util Logging, Log4J, Log4J2和Logback提供配 ...
- 浅谈js中继承的理解和实现
一.前言 java.C#等正统面向对象语言都会提供类似extend之类的处理类的继承的方法,而javascript并没有提供专门的方法用于继承,在javascript中使用继承需要一点技巧.js中实例 ...
- 因DataTable的字段值为DBNull引发的异常
1 问题重现 (1)新建项目DBNullExp.项目属性为"控制台应用程序": (2)在项目下新建数据集Schools(数据集文件的后缀名为.xsd): watermark/2/t ...
- 设备模型的uevent机制
内核模块的热插拔事件的通知基于uevent机制. 当kobject的状态发生改变(如,add, remove等)时,会通知用户空间,用户空间接收到事件通知后可以做相应的处理.uevent把事件上报给用 ...
- .align
.align的作用是针对指令或数据的存放地址对齐.但不同的CPU架构,指令和数据的存储方式不同,也就导致对齐的计量单位不一样. i386:n对齐 ARM:2^n 对齐,ARM架构下,指令都是占32位, ...
- hive中的join
建表 : jdbc:hive2://localhost:10000> create database myjoin; No rows affected (3.78 seconds) : jdbc ...
- ACM Computer Factory - poj 3436 (最大流)
Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5949 Accepted: 2053 Special Judge ...
- [前端开发] 未来趋势“无后端”的web应用开发模式
最近看到前端趋势2013大会上的一篇文章,题目是<各位快看,不用后端>,觉得有点意思,恰好近期的一次讨论及半年前的一次开发实践也涉及到这种模式,简单谈谈我的想法. 不得不说,文章的题目确实 ...
- Struts2 是什么?
Struts2是流行和成熟的基于MVC设计模式的Web应用程序框架. Struts2不只是Struts1下一个版本,它是一个完全重写的Struts架构. WebWork框架开始以Struts框架为基础 ...
- 设置内容 - text()、html() 以及 val()
我们将使用前一章中的三个相同的方法来设置内容: text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元素的内容(包括 HTML 标记) val() - 设置或返回表单字段的 ...