算法养成记:Reverse Only Letters
- 2020 年 3 月 10 日
- 筆記
呆萌程序员
算法养成记
LeetCode917
Reverse Only Letters
Given a string S, return the "reversed" string where all characters that are not a letter stay in the same place, and all letters reverse their positions.
Example 1:
Input: "ab-cd"
Output: "dc-ba"
Example 2:
Input: "a-bC-dEf-ghIj"
Output: "j-Ih-gfE-dCba"
Example 3:
Input: "Test1ng-Leet=code-Q!"
Output: "Qedo1ct-eeLg=ntse-T!"
Note:
1.S.length <= 100
2.33 <= S[i].ASCIIcode <= 122
3.S doesn't contain or "
在实际测试里,三种算法的结果都是递增的
执行用时分别是:2ms,1ms,1ms
内存消耗分别是:37.1MB,37.5MB,37MB
循环两次的用时不一定比一次的少;
还有个小插曲,在写方法1的时候,也写过用Stack,毕竟首先想到它。但他的内存消耗竟然比LinkedList还高,达到37.6MB,耗时还是2ms,哭瞎!
哪里不太对,但又说不上来。
数据结构和算法一直都是程序员面试重点。写好每一个方法,每一个接口,程序的效率也会越来越高。为了学习和巩固数据结构和算法,我们特别创作了《呆萌程序员–明明凯凯算法养成记》,每天更新一篇数据结构知识点或者刷一道LeetCode题目。算法都会在LeetCode上测试。当然答案不唯一,由于能力有限,实现方法不一定是最好的,也希望各位小伙伴一起来学习分享~