码迷,mamicode.com
首页 > 其他好文 > 详细

001 unique string

时间:2014-08-10 13:07:10      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:算法   数据结构   娱乐   

以后坚持每个星期都写记到算法题,不论简单还是难,纯熟娱乐!

描述:

实现一个算法来判断一个字符串中的字符是否唯一(即没有重复).不能使用额外的数据结构。 (即只使用基本的数据结构)

代码:

#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,布布扣,bubuko.com

001 unique string

标签:算法   数据结构   娱乐   

原文地址:http://blog.csdn.net/xiaoliangsky/article/details/38468089

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!