
重复子问题,递归解决。
代码:
- class Solution {
- public:
- int num1;int num2;
- void fun(string s)
- {
- num1=0;num2=0;
- for(char c:s){
- if(c=='|')num1++;
- if(c=='*')num2++;
- }
- if(num1<=1)return;
- int pos1=s.find('|');
- int pos2=s.find('|',pos1+1);
- s.erase(pos1,pos2-pos1+1);
- fun(s);
- }
- int countAsterisks(string s) {
- fun(s);
- return num2;
- }
- };

明天打算搞搞树、链表、排序这些基础算法,听说面试官很看重这些能力!!