判断一个字符串的所有字符是否都是唯一的(使用hash表方法)
来源:互联网 发布:炒外汇模拟软件 编辑:程序博客网 时间:2024/06/01 09:23
哈希表几乎是最为重要的数据结构,主要用于基于“键”的查找,存储的基本单元是键-值对。逻辑上,数组可以作为哈希表的一个特例。以下将举出哈希表的两个应用。
1.判断一个字符串所有的字符是否都是唯一的
思路:这道题的关键是“唯一”,题目中一旦出现“唯一”,就考虑使用哈希表或者bitset来判断元素出现与否的范畴。使用bitset,需要建立字符到整数下标的映射关系。下面简单介绍一下bitset。
bitset位是用来保存一组项或者条件的yes/no的信息(有事也叫标志)的简洁方法。bitset必须声明自己有多少位,类似于vector的用法。
参考答案:
#include "stdafx.h"
#include<iostream>
#include<bitset>
using namespace std;
bool isUnique(string input)
{
bitset<256> hashMap;
for(int i=0;i<input.length();i++)
{
if(hashMap[(int)input[i]])
{
return false;
}
hashMap[(int)input[i]]=1;
}
return true;
}
int _tmain(int argc, _TCHAR* argv[])
{
string str;
bool Unique;
while(cin>>str)
{
Unique=isUnique(str);
cout<<Unique;
}
system("pause");
return 0;
}
2.给定两个字符串,判断他们是否是彼此可置换的
思路:判断两个字符串是否是可置换,即判断两个字符串中每个字符出现的次数是否是一样的。如果两个字符串的长度不一致,肯定是不能置换的。如相同的话,有两种方法判断,1是使用map,2是按照ASCII码排列。
参考答案:
#include "stdafx.h"
#include<iostream>
#include<string>
#include<unordered_map>
using namespace std;
bool isPertutation(string stringA,string stringB)
{
if(stringA.length()!=stringB.length())
{
return false;
}
unordered_map<char,int> hashMapA;
unordered_map<char,int>hashMapB;
for(int i=0;i<stringA.length();i++)
{
hashMapA[stringA[i]]++;
hashMapB[stringB[i]]++;
}
if(hashMapA.size()!=hashMapB.size())
{
return false;
}
unordered_map<char,int>::iterator it;
for(it=hashMapA.begin();it!=hashMapA.end();it++)
{
if(it->second!=hashMapB[it->first])
{
return false;
}
}
return true;
}
int _tmain(int argc, _TCHAR* argv[])
{
string str1="zzxxccvvbb";
string str2="bbvvxxcczz";
bool permutation=isPertutation(str1,str2);
cout<<permutation;
system("pause");
return 0;
}
- 判断一个字符串的所有字符是否都是唯一的(使用hash表方法)
- 1.1 设计算法判断一个字符串中字符都是否唯一的。如果不能使用额外的数据结构呢?
- 字符串中的字符是否都是唯一的,未重复的
- 判断一个字符串的字符是不是唯一
- 判断一个字符串中的字符是否唯一
- 判断一个字符串字符是否唯一
- 判断一个字符串中的字符是否唯一
- 判断一个字符串中的字符是否唯一
- 判断一个字符串中的字符是否唯一
- 实现一个算法来判断一个字符串中的字符是否唯一(即没有重复).不能使用额外的数据结构。 (即只使用基本的数据结构)
- 判断一个字符串里是否包含另一个字符串所有的字符
- 判断一个字符串的所有字符是否都在另一个字符串中
- 算法4— 判断一个字符串里是否包含另一个字符串所有的字符
- 判断一个字符串里是否包含另一个字符串所有的字符
- 【LintCode】判断一个字符串是否包含另一个字符串的所有字符
- Java算法面试题(004) 实现一个算法来确定一个字符串是否具有所有唯一的字符
- 如何判断一个字符串中的字符是否唯一
- java 判断一个字符串中的字符是否唯一
- flume 的安装和入门小例子
- Java:计算器小程序
- Java内存模型——顺序一致性保证
- Simplify Path
- UNIX多线程编程(2) 线程互斥
- 判断一个字符串的所有字符是否都是唯一的(使用hash表方法)
- 1.4
- 超越影像——RSNA 2016参展随感 (一)
- Leetcode-456. 132 Pattern
- 重学JavaScript--第二章(数据类型)
- android四大组件_Activity
- 精品網站收藏
- 关于java的常用运算符
- ffmpeg命令行,单张图片,音频合成视频