Leetcode 316
来源:互联网 发布:网络热敏打印机 编辑:程序博客网 时间:2024/04/19 21:11
Leetcode 316 Remove Duplicate Letters
开始刷题,记录一下分析过程和编码中的问题
string stringStack;bool isMarked(char ch){ int markedSz=stringStack.length(); if(markedSz==0) return false; else{ for(int i=0; i<markedSz; i++) { if(stringStack.at(i)==ch) return true; } return false; }}char getStringStackTop(){ int markedSz=stringStack.length(); if(markedSz==0) return '\0'; else return stringStack.at(markedSz-1);}void push(char ch){ stringStack = stringStack + ch;}char pop(){ char topChar=getStringStackTop(); if(topChar=='\0') return topChar; else{ stringStack=stringStack.substr(0,stringStack.length()-1); return topChar; } }bool appearAfter(string s, char ch, int location){ int sz=s.length(); if(location >= sz){ cout<<"error location"<<endl; return false; } else{ for(int i=location; i<sz; i++){ if(ch==s.at(i)){ return true; } } return false; }}string removeDuplicateLetters(string s) { if(s.length()==0) return s; int sz=s.length(); char newChar; char oldChar; for(int i=0; i<sz; i++){ if(isMarked(s.at(i))); else{ newChar=s.at(i); oldChar=getStringStackTop(); while(oldChar!='\0'){ if(newChar < getStringStackTop()){ if(appearAfter(s,oldChar,i)){ pop(); oldChar=getStringStackTop(); } else{ oldChar='\0'; } } else oldChar='\0'; } push(newChar); } } return stringStack;}
0 0
- Leetcode 316
- leetcode
- [leetcode]
- LeetCode
- leetcode
- leetcode
- leetcode:
- leetcode:
- LeetCode
- leetcode
- LEETCODE
- leetcode
- leetCode
- leetcode
- [leetcode]
- LeetCode
- leetcode
- leetcode:
- java 单链表实现队列
- 4.1mysql日志系统--课程笔记
- HDU 5232 Shaking hands
- ZOJ1004
- 胡伯涛论文阅读手记
- Leetcode 316
- javascript异步过程
- 环状序列(Circular Sequence, ACM/ICPC Seoul 2004, UVa1584)
- [土狗之路]coursera上C语言进阶习题 括号匹配
- Hdu2066(一个人的旅行)
- [WC2016]挑战NPC
- p275第十章函数和指针
- python教程1安装环境
- 《machine learning with spark》学习笔记--推荐模型