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 ...
随机推荐
- js标准化价钱
//标准化总价钱 s:总价钱,n:保留几位小数 function fmoney(s, n) { n = n > 0 && n <= 20 ? n : 2; s = pars ...
- C语言学习笔记(四) 流程控制
流程控制 流程控制,说通俗一点就是程序代码执行的顺序.不管对于哪门语言来说,流程控制都是很重要的一部分内容: 流程控制的分类,可以分为三大类: 1.顺序 这个很好理解,顺序执行就是代码从上往下一行行的 ...
- POJ训练计划3096_Surprising Strings(STL/map)
解题报告 id=3096">题目传送门 题意: 给一个字符串,要求.对于这个字符串空隔为k取字符对(k=0,1,2,3,4...)要求在同样的空隔取对过程汇总.整个字符串中没有一个同样 ...
- sqlserver利用链接服务器查询或同步本地数据库和远程数据库
这个实际上是SQLserver的分布式查询:如果一个项目需要二至多台服务器,而我们又必须从几台服务器中将数据取出来,这就必须用分布式查询!在这里有两个概念:本地数据源.远程数据源!本地数据源指的是单个 ...
- iOS-Gif图片展示N种方式(原生+第三方)
原生方法: 1.UIWebView 特点:载入速度略长,性能更优.播放的gif动态图更加流畅. //动态展示GIF图片-WebView -(void)showGifImageWithWebView{ ...
- socket编程之实现简单的ssh
服务器代码: #-*- coding:utf-8 -*- #edited by python3.6 # import socket,os ''' 创建socket对象 ''' server = soc ...
- driver makefile
1.单模块单文件//*********************************************obj-m := hello.o KDIR := /home/akaedu/kernel/ ...
- Elasticsearch5.X IN Windows 10 系列文章(3)
系统类型:windows10 64位家庭版 ElasticSearch版本: 5.5.1 (最新稳定版为5.5.2),由于用到IK中文分词插件,最新版本没有5.5.2 ,所以使用5.5.1 日期:20 ...
- CodeAreaFX
CodeAreaFX is a text area for JavaFX with API to style ranges of text. It is intended as a base for ...
- python 面向对象三大特性(封装 多态 继承)
今天我们来学习一种新的编程方式:面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)注:Java和C#来说只支持面向对象编程,而python比较灵活即支持面 ...