day07之包含min函数的栈+查找一个字符串中第一个只出现两次的字符
2017-07-19 13:22
267 查看
实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)
查找一个字符串中第一个只出现两次的字符
比如:“abcdefabcdefabc”中第一个只出现两次为‘d’,要求时间复杂度为O(N),空间复杂度为O(1)
class Stack { public: void Push(int val) { s.push(val); if(minstack.empty()) { minstack.push(val); } else { int min = val > minstack.top() ? minstack.top():val; minstack.push( min ); } } void Pop() { assert(!s.empty()); assert(!minstack.empty() ); s.pop(); minstack.pop(); } int Min() { assert(!minstack.empty()); return minstack.top(); } private: stack<int> minstack; stack<int> s; };
查找一个字符串中第一个只出现两次的字符
比如:“abcdefabcdefabc”中第一个只出现两次为‘d’,要求时间复杂度为O(N),空间复杂度为O(1)
char FirstTwoChar(const char *str) { assert(str); char array[256] = { 0 } ; const char *pcur = str; while(*pcur) { array[ *pcur ]++; pcur++; } pcur = str; while(*pcur) { if(array[*pcur] == 2) return *pcur; pcur++; } return 0; }
相关文章推荐
- 查找一个字符串中第一个只出现两次的字符。比如:“abcdefabcdefabc”中第一个只出现两次为‘d’,要求时间复杂度为O(N),空间复杂度为O(1)
- 查找一个字符串中第一个只出现两次的字符
- 查找一个字符串中第一个只出现两次的字符
- 查找一个字符串中第一个只出现两次的字符,要求时间复杂度为O(N)。-替换字符串中的空格为$$$。要求时间复杂度为O(N)
- 查找一个字符串中第一个只出现两次的字符
- 查找一个字符串中第一个只出现两次的字符
- 实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1) /查找一个字符串中第一个只出现两次的字符
- 查找一个字符串中第一个只出现两次的字符
- 【每日一题】查找一个字符串中第一个只出现两次的字符
- 查找一个字符串中第一个只出现两次的字符。
- 查找一个字符串中第一个只出现两次的字符。要求 时o(n) 空o(1)
- 查找一个字符串中第一个只出现两次的字符。比如:“abcdefabcdefabc”中第一个只出现两次为‘d’,要求时间复杂度为O(N),空间复杂度为O(1)
- 【每日一题】查找一个字符串中第一个只出现两次的字符。要求时间复杂度为O(N),空间复杂度为O(1)
- 查找字符个数--查找一个字符串中第一个只出现两次的字符。比如:“abcdefabcdefabc”中第一个只出现两次为‘d’,要求时间复杂度为O(N),空间复杂度为O(1)
- 【字符串】查找一个字符串中第一个只出现两次的字符。比如:“abcdefabcdefabc”中第一个只出现两次为‘d’,要求时间复杂度为O(N),空间复杂度为O(1)
- 查找一个字符串中第一个只出现两次的字符
- [置顶] 在一个字符串中查找第一个只出现一次的字符。要求复杂度为O(N).
- c::在一个字符串中查找第一个只出现一次的字符
- 查找一个字符串中,出现的第一个单身字符。/一个字符串中查找第一个只出现一次的字符。 //要求复杂度为O(N).
- Google笔试题:哈希表的一个意想不到的应用--在字符串中查找第一个只出现一次的字符