算法养成记: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上测试。当然答案不唯一,由于能力有限,实现方法不一定是最好的,也希望各位小伙伴一起来学习分享~