|

楼主 |
发表于 2019-6-20 09:53:30
|
显示全部楼层
本帖最后由 风扫地 于 2019-6-20 09:58 编辑
- /*
- * 实现2:原地模拟出栈入栈操作(优化循环)
- */
- char* removeDuplicates(char * S)
- {
- int i = 0 ;
- int valid_index = 0 ;
-
- while(S[i] != '\0')
- {
- if(valid_index == 0) /* 边界情况,一定是入栈*/
- {
- S[valid_index] = S[i] ;
- valid_index++ ;
- }
- else
- {
- if(S[i] == S[valid_index-1]) /* 碰到情侣就杀死*/
- {
- valid_index-- ;
- S[valid_index] = '\0' ;
- }
- else /* 碰到单身狗就存好*/
- {
- S[valid_index] = S[i] ;
- valid_index++ ;
- }
- }
- i++;
- }
-
- S[valid_index] = '\0';
- return S;
- }
复制代码
- /*
- 实现2:
- 执行用时 :4 ms, 在所有 C 提交中击败了93.25%的用户
- 内存消耗 :8 MB, 在所有 C 提交中击败了100.00%的用户
- */
复制代码 |
|