确定一个字符串的所有字符是否全都不同
请实现一个算法,确定一个字符串的所有字符是否全都不同。这里我们要求不允许使用额外的存储结构。
给定一个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 实现一个算法来判断一个字符串中的字符是否唯一(即没有重复).不能使用额外的数据结构. (即只使用基本的数据结构) 首先,你可以问面试官, ...
最新文章
- C# Socket编程(5)使用TCP Socket
- java.io.IOException: Stream closed
- 脱壳实践之手动构造输入表
- hls之m3u8、ts流格式详解
- 【POJ - 1486】Sorting Slides(思维建图,二分图求必须边,关建边,图论)
- assembly 输出ab中所有数_.NET Core中批量注入Grpc服务
- FastCGI - Writing Hello World in FCGI with C++
- 设计模式的C语言应用-观察者模式-第四章
- 计算机导航医学应用,【2016年】计算机导航在全膝关节置换中的应用技术及进展【临床医学论文】.doc...
- [转载]Informix平安特征庇护数据的详细方法
- mysql和oracle 命令行执行sql文件 数据库执行sql文件 执行sql语句
- 在GRIDVIEW中合并单元格
- 微信中文件为什么不能另存?
- 计算机操作系统,组成原理等基础课联系与区别
- android 数字 余额宝,仿余额宝数字滚动增长的效果实现
- C++类内初始值的初始化形式
- Weiss Ratings公布加密货币评级结果
- 安全左中右·2022 XDR 网络安全运营新理念峰会圆满落幕
- 上传遥感图像在地图上自动加载到地图上
- 程序员双节假期如何小赚一笔?
热门文章
- html选项卡原理,实用!纯CSS3实现的内容选项卡(Content Tabs)4个实例
- app timeline server
- html css加载不了_前端面试准备笔记之html和css(03)
- 国际服服务器怎么换账号吗,游戏王决斗链接
- net项目对接java平台_用Java解决项目对接短信验证码难问题:OkHttp和Unirest介绍
- Sourceinsight超好看护眼的配色方案!!!每一步都有步骤
- 树莓派 GPIO高低电平输入
- 嵌入式或者驱动底层开发为何不如java等上层开发工资高?
- Python元组的操作小技巧——计算和查询位置
- 关联矩阵与邻接矩阵的转换及Matlab实现