查找一个字符串中第一个只出现两次的字符
来源:互联网 发布:淘宝浏览量有什么用 编辑:程序博客网 时间:2024/05/22 03:54
查找一个字符串中第一个只出现两次的字符。
比如 “abcdefabcdefabc” 中第一个只出现两次为‘d’,
要求时间复杂度O(N),空间复杂度O(1)
这个题和在一个字符串中查找第一个只出现一次,只出现两次是一个套路。
第一眼看到要求空间复杂度为O(1)有点蒙。突然想了一下。。字符最多256 个(前提是ASCII字符)。。不管N 有多大,也有256 限制它。所以空间复杂度依然是 O(N)。
如果还要优化可以使用位图,然后可以题目要求根据出现的次数选择不同的比特位来识别。
还有一类变形是让确认一个字符串的所有字符是否 全部相同,原理也类似。
char find_char_two(const char* str){ assert(str); const char* start = str; char count[256]; // 因为字符只有256 不管你字符串多长,都是O(1)的空间复杂度 memset(count, 0, sizeof(count)); // 统计次数 while (*start) { count[*start]++; start++; } start = str; while (*start) { if (count[*start] == 2) { return *start; } start++; } printf("没有出现两次的字符\n"); return -1;}int main(){ //space_to_symbol(); char c = find_char_two("abcdefabcdefabc"); cout << c << endl; return 0;}
阅读全文
0 0
- 查找一个字符串中第一个只出现两次的字符。
- 查找一个字符串中第一个只出现两次的字符
- 查找一个字符串中第一个只出现两次的字符
- 查找一个字符串中第一个只出现两次的字符
- 【每日一题】查找一个字符串中第一个只出现两次的字符
- 查找一个字符串中第一个只出现两次的字符
- 查找一个字符串中第一个只出现两次的字符
- day07之包含min函数的栈+查找一个字符串中第一个只出现两次的字符
- 查找一个字符串中第一个只出现两次的字符。要求 时o(n) 空o(1)
- 找出字符串中第一个只出现两次的字符
- 查找字符个数--查找一个字符串中第一个只出现两次的字符。比如:“abcdefabcdefabc”中第一个只出现两次为‘d’,要求时间复杂度为O(N),空间复杂度为O(1)
- 寻找一个字符串中第一个只出现两次的字符
- 【字符串】查找一个字符串中第一个只出现两次的字符。比如:“abcdefabcdefabc”中第一个只出现两次为‘d’,要求时间复杂度为O(N),空间复杂度为O(1)
- 查找一个字符串中第一个只出现两次的字符。比如:“abcdefabcdefabc”中第一个只出现两次为‘d’,要求时间复杂度为O(N),空间复杂度为O(1)
- 查找一个字符串中第一个只出现两次的字符。比如:“abcdefabcdefabc”中第一个只出现两次为‘d’,要求时间复杂度为O(N),空间复杂度为O(1)
- 查找一个字符串中第一个只出现两次的字符,要求时间复杂度为O(N)。-替换字符串中的空格为$$$。要求时间复杂度为O(N)
- 查找字符串中第一个只出现一次的字符
- 查找字符串中第一个只出现一次的字符
- 面向对象设计模式
- 生成对抗网络(GANs)的资料小结,另附:资源|17类对抗网络经典论文及开源代码(附源码)
- (转)疯狂的音箱
- 大数据
- Java NIO系列教程(一) Java NIO 概述
- 查找一个字符串中第一个只出现两次的字符
- 小红书提前批笔试题
- TestController
- 字符串操作
- union 查询树结构
- springmvc.xml web.xml
- java--静态绑定和动态绑定
- Hive实战之Youtube数据集
- mysql索引总结----mysql 索引类型以及创建