确定一个字符串的所有字符是否全都不同
请实现一个算法,确定一个字符串的所有字符是否全都不同。这里我们要求不允许使用额外的存储结构。
给定一个string iniString,请返回一个bool值,True代表所有字符全都不同,False代表存在相同的字符。保证字符串中的字符为ASCII字符。字符串的长度小于等于3000。
测试样例:
“aeiou”
返回:True
“BarackObama”
返回:False
#include<iostream>
using namespace std;
#include<string>
#include<algorithm>
//方式一 bool CheckDifferent(string iniString)
{ unsigned char str[256] = { 0 }; for (int i = 0; i < iniString.length(); ++i) { str[iniString[i]]++; } for (int i = 0; i < iniString.length(); ++i) { if (str[ iniString[i] ] > 1) return false; } return true;
}
//方式二
/*bool CheckDifferent(string iniString)
{ sort(iniString.begin(),iniString.end()); if (unique(iniString.begin(),iniString.end()) == iniString.end() ) //去掉重复的元素,这里的去掉是将重复元素放在容器的末尾,伪去除,返回第一个重复的元素的迭代器,没有重复的元素返回end位置。 return true; return false; }
//方式三 bool Qsort(string str,int low,int high)
{ if (low >= high) return true; int second = high; int first = low; int key = str[high]; while (low < high) { while (low < high && str[low] <= key) { low++; } swap(str[low],str[high]); while (low < high && str[high] >= key) { high--; } swap(str[low],str[high]); } if (low != first && str[low] == str[low-1]) return false; if(low != high && str[low == str[low+1]]) return false; return Qsort(str,first,low-1) && Qsort(str,low+1,second);
} bool CheckDifferent(string iniString)
{ return Qsort(iniString,0,iniString.length()-1);
} int main()
{ cout << CheckDifferent("aeiou") <<endl; cout << CheckDifferent("BarackObama") <<endl; cout << "hello..."<<endl; return 0;
}
确定一个字符串的所有字符是否全都不同相关推荐
- 请实现一个算法,确定一个字符串的所有字符是否全都不同。这里我们要求不允许使用额外的存储结构。
请实现一个算法,确定一个字符串的所有字符是否全都不同.这里我们要求不允许使用额外的存储结构. 给定一个string iniString,请返回一个bool值,True代表所有字符全都不同,False代 ...
- 请实现一个算法,确定一个字符串的所有字符是否全都不同。这里我们要求不允许使用额外的存储结构。 给定一个string iniString,请返回一个bool值,True代表所有字符全都不同,False代
请实现一个算法,确定一个字符串的所有字符是否全都不同.这里我们要求不允许使用额外的存储结构. 给定一个string iniString,请返回一个bool值,True代表所有字符全都不同,False代 ...
- 请实现一个算法,确定一个字符串的所有字符是否全都不同。这里我们要求不允许使用额外的存储结构
**请实现一个算法,确定一个字符串的所有字符是否全都不同.这里我们要求不允许使用额外的存储结构. 给定一个string iniString,请返回一个bool值,True代表所有字符全都不同,Fals ...
- 【面试经典题之字符串】实现一个算法,确定一个字符串的所有字符是否全都不同。假设不允许使用额外的数据结构
实现一个算法,确定一个字符串的所有字符是否全都不同.假设不允许使用额外的数据结构. 解题: 首先我们假设这个字符串中全都是ASCII字符(如果不是需要另外讨论了).因为ASCII字符集中总共有256个 ...
- 实现一个算法,确定一个字符串的所有字符是否全都不同?
实现一个算法,确定一个字符串的所有字符是否全都不同? 解法 Python算法实现 代码测试 解法 构建一个布尔值的数组,索引值i对应的标记指示该字符串是否含有字母表第i个字符.若这个字符第二次出险,则 ...
- 【编程练习题】实现一个算法,确定一个字符串的所有字符是否全都不同。假使不允许使用额外的数据结构,又该如何处理。
在编写算法之前,要先确认是ascii字符串还是unicode字符串 Ascii码表最多就256个字符:以一个字节来存放一个 ASCII 字符 1byte = 8bit ,故最多能存放2^8 = 256 ...
- 1.1实现一个算法,确定一个字符串的所有字符是否全都不同。假使不允许使用额外的数据结构,又该如何处理。...
首先,得先问是ascii字符串还是unicode字符串.(问:这两者有何区别呢) 方法1: public boolean isUniqueChars2(String str) {//ascii码表总共 ...
- java练习: 编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符,例如:
import java.util.ArrayList; import java.util.Scanner;/*** 7. 编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符,例如:* 原始字 ...
- 判断一个字符串中的字符是否唯一
http://www.cricode.com/254.html 实现一个算法来判断一个字符串中的字符是否唯一(即没有重复).不能使用额外的数据结构. (即只使用基本的数据结构) 首先,你可以问面试官, ...
最新文章
- 爬虫学习 pyspider和scrapy小结 / 与其他工具对比
- win10 远程登录 无密码用户
- Ansible批量在远程主机执行命令
- C++primer第九章 顺序容器 9.3 顺序容器操作
- IIS Log的位置
- 十一假期国人消费力爆棚,国内旅游收入超6497亿,你花了多少?
- UVA10817--状态压缩DP
- YUV420查表法高效、无失真的转换为RGB32格式
- 架构之美第四章-架构与美
- 思科 Packet Tracer 实验七 DHCP基本配置
- WindowsServer2003 2008R2架设ASP网站实战
- Java连rabbitMQ 报错 An unexpected connection driver error occured
- 光伏发电到底能带我们走多远?
- 浅谈自适应滤波器---(快速RLS算法)
- Python错误日志
- if中return语句作用/条件判断中如何退出函数
- css html 实现刻度,用CSS划一把刻度尺
- Other | PPTV电视安装第三方应用教程
- 视觉错觉模型_【案例 Blah】 剪影视错觉装置建模
- 浏览器被劫持了 hao123