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 ...
随机推荐
- STL vector的构造函数和析构函数(2)
原文来自:点击打开链接 译文: public member function vector的构造器:这里我仅仅翻译C++11的,C++98的就不翻译了. 构造器原型: <vector> s ...
- set hive.exec.parallel
hive.exec.parallel参数控制在同一个sql中的不同的job是否可以同时运行,默认为false.下面是对于该参数的测试过程: 测试sql:select r1.a from (sel ...
- tony_nginx_01_如何在linux系统下安装nginx、pcre、zlib、openssl工具
nginx可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息. 正式开始前,编译环境gcc g++ 开发库之类的需要提前装好,这里默认你已经装好. ububtu平台编译环 ...
- Atitit.单向sso 单点登录的设计与实现
Atitit.单向sso 单点登录的设计与实现 1. 单点登录sso 的三大解决方案1 2. 新方案:密码管理器方案1 3. 调用方1 4. 自动登录登录2 5. 主页跳转2 1. 单点登录sso ...
- c++ why doesn't c++ allow rebinding a reference ?
http://stackoverflow.com/questions/27037744/why-doesnt-c-allow-rebinding-a-reference# 1. The primary ...
- 360 网络攻防 hackgame 解题报告(通关)
地址:http://challenge.onebox.so.com/ 1.referrer or host 2.js decode 3.urldecode, ASCII 4.JFIF * 2 5.go ...
- BZOJ 1260 CQOI2007 涂色paint 动态规划
题目大意:给定一块木板,上面每一个位置有一个颜色,问最少刷几次能达到这个颜色序列 动态规划,能够先去重处理(事实上不是必需),令f[i][j]代表将i開始的j个位置刷成对应颜色序列的最小次数.然后状态 ...
- python资源网站
whl安装包资源网站:http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy
- 关于错误处理程序中【return】的用法
先让俺这位新人帮各位有幸游览到我博客文章的叔叔阿姨哥哥姐姐们解释一下什么是错误处理?即:当程序发生错误时,保证程序不会异常中断的机制. 那么为什么程序中会有错误处理呢?像我们通常无论是玩手机或者玩游戏 ...
- 关东升的《iOS实战:图形图像、动画和多媒体卷(Swift版)》上市了
关东升的<iOS实战:图形图像.动画和多媒体卷(Swift版)>上市了 承蒙广大读者的厚爱我的<iOS实战:图形图像.动画和多媒体卷(Swift版)>京东上市了,欢迎广大读者提 ...