1.判断字符串中的字符是否唯一

如果我们假设字符集是ASCII字符,那么我们可以开一个大小为256的bool数组来表征每个字符的出现。数组初始化为false,遍历一遍字符串中的字符,当bool数组对应位置的值为真, 表明该字符在之前已经出现过,即可得出该字符串中有重复字符。否则将该位置的bool数组 值置为true。

核心代码:

 1 bool isCharUnique(string s)
 2 {
 3     bool a[256];
 4     int i =0;
 5     memset(a,0,sizeof(a));
 6     int len = s.length();
 7     for(i = 0;i < len;++i)
 8     {
 9         int v = (int)s[i];
10         if(a[v]) return false;
11         a[v] = true;
12     }
13     return true;
14 }

示例代码:

 1 #include <iostream>
 2 #include <cstring>
 3 using namespace std;
 4 bool isCharUnique(string s)
 5 {
 6     bool a[256];
 7     int i =0;
 8     memset(a,0,sizeof(a));
 9     int len = s.length();
10     for(i = 0;i < len;++i)
11     {
12         int v = (int)s[i];
13         if(a[v]) return false;
14         a[v] = true;
15     }
16     return true;
17 }
18 int main()
19 {
20     string s1 = "i am superdemon.";
21     string s2 = "abcdefghijklmnopqrstuvwxyzABCD1234567890";
22     cout << isCharUnique(s1) << " " << isCharUnique(s2) << endl;
23     return 0;
24 }

时间: 2024-10-03 04:30:03

1.判断字符串中的字符是否唯一的相关文章

SQL中判断字符串中包含字符的方法

通过2个函数CHARINDEX和PATINDEX以及通配符的灵活使用函数:CHARINDEX和PATINDEXCHARINDEX:查某字符(串)是否包含在其他字符串中,返回字符串中指定表达式的起始位置.PATINDEX:查某字符(串)是否包含在其他字符串中,返回指定表达式中某模式第一次出现的起始位置:如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零.特殊:可以使用通配符! 例子:1. 查询字符串中是否包含非数字字符SELECT PATINDEX('%[^0-9]%', '1235X4

使用Dictionary键值对判断字符串中字符出现次数

介绍Dictionary 使用前需引入命名空间 using System.Collections.Generic Dictionary里面每一个元素都是一个键值对(由两个元素组成:键和值) 键必须是唯一的,而值不需要唯一 键和值都可以是任何类型(比如:string,int,自定义类型等) 通过一个键读取一个值的时间接近0(1) 键值对之间的偏序可以不定义 使用Dictionary 使用dictionary判断字符串中字符出现次数 var dic = new Dictionary<char, in

前端与算法 leetcode 387. 字符串中的第一个唯一字符

目录 # 前端与算法 leetcode 387. 字符串中的第一个唯一字符 题目描述 概要 提示 解析 解法一:双循环 解法二:Set法单循环 算法 传入测试用例的运行结果 执行结果 GitHub仓库 查看更多 # 前端与算法 leetcode 387. 字符串中的第一个唯一字符 题目描述 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引.如果不存在,则返回 -1. 案例: s = "leetcode" 返回 0. s = "loveleetcode",

Cracking-- 1.1 判断字符串中是否有重复字符

第三种方法为位运算的方法. 位运算符: << 左移  & 与 | 或 #include <iostream> #include <string> #include <unordered_set> #include <vector> #include <unordered_map> using namespace std; //时间 O(n) 空间 O(1) bool hasSame(string str) { if(str.s

JS判断字符串中,某个字符出现的次数

/**   * JS判断字符串中,某个字符出现的次数   */     var str ="abc#def#hig";     var len =str.split("#").length-1     alert(len);

字符串中单个字符的用法

我们使用字符串时经常要对字符串中单个字符进行处理,比如检测一个string对象是否包含空白,或者把string对象中的字母大写改为小写,查看某个特定字符是否出现,判断字符串是否为数字等等. 这类处理的关键是要获取字符本身.有时需要处理string对象中的每一个字符,另外一些时候则只需处理某个特定的字符,还有些时候遇到某个条件处理就要停下来. 在cctype头文件中定义了一组标准库函数处理字符串的工作. cctype头文件中的函数 isalnum(c)    当c是字母或数字时为真 isalpha

SQL 判断字段中指定字符出现的次数

原文地址:SQL 判断字段中指定字符出现的次数 原理:将指定字符转换为空,原长度减去转换后的长度就是指定字符的次数. 在做数据处理时遇到一个SQL操作的问题就是有一列关键词字段,字段中包含各种乱七八糟的字符,其中有一个双引号“ 是关键词中不需要的,所以需要去掉,而一般只有带两个”的才需要去除,所以首先得先找到含有双引号的且双引号出现两次的值,然后删除.这里提取指定符串在 字段中的出现次数SQL为: select   *   from   google_keyword    where   len

LeetCode:Valid Number - 判断字符串中内容是否为数字

1.题目名称 Valid Number(判断字符串中内容是否为数字) 2.题目地址 https://leetcode.com/problems/valid-number/ 3.题目内容 英文:Validate if a given string is numeric. 中文:给出一个字符串,检查这个字符串中内容是否是一个数字 例如:"0"." 0.1"."2e10"是数字,"abc"."1 a"不是数字 4

判断字符串中是否包含中文

public bool CheckChinese(string str) { bool flag = false; UnicodeEncoding a = new UnicodeEncoding(); byte[] b = a.GetBytes(str); for(int i=0;i<b.Length;i++) { i++; if (b[i] != 0) { flag = true; } else { flag = false; } } return flag; }这段代码为什么能实现判断是否为