如果我有两个字符串说str1 & str2
如何使用Stack的push和pop操作组合两个字符串?
str1 = I to cricket chess
str2 = like play and
我想要的输出:
“我喜欢打板球和国际象棋”
可以这样使用stack
push
和pop
操作来完成。算法应该独立于编程语言。上面提到的字符串可以是任意长度的 。
如果我有两个字符串说str1 & str2
如何使用Stack的push和pop操作组合两个字符串?
str1 = I to cricket chess
str2 = like play and
我想要的输出:
“我喜欢打板球和国际象棋”
可以这样使用stack
push
和pop
操作来完成。算法应该独立于编程语言。上面提到的字符串可以是任意长度的 。
这是非常简单的。你只需要push
第一个字从第一串叠,然后push
从第二个字符串的第一个字,然后做第二个字是相同的,然后到第三话等
之后,你需要pop
来自堆栈中的每个元素和push
它到第二个堆栈,以反转序列。然后你只需pop
从第二堆叠中的每个元素,并将其添加到结果字符串。
从你给什么,你必须做出一些假设。
假设:
该算法将如下这样:
我会说这是比我更好的解决方案,因为你不必维护两个单独的索引递减,这可能是容易出错。我下注矿是更多的时间和空间高效(无第二堆叠,并且堆叠的没有双重遍历),在是更容易出错的费用。 – Alan
是的,但如果你使用队列,而不是堆栈,可以省略第二阶段。 – Lazin
队列会使这个微不足道。我认为整个想法是测试OP对LIFO性质的理解,同时处理解析句子的FIFO性质(即使它在两个字符串之间分割)。 – Alan