📌  相关文章
📜  以相反的顺序打印字符串的单词(1)

📅  最后修改于: 2023-12-03 15:36:22.642000             🧑  作者: Mango

以相反的顺序打印字符串的单词

对于一个给定的字符串,我们需要以相反的顺序打印出其中的单词。

解法思路

我们可以先将字符串按照空格切分成若干个单词,然后再将这些单词按照相反的顺序拼接起来。

例如,对于字符串 "hello world",我们可以按照空格将其切分成两个单词,即 "hello" 和 "world",然后将它们拼接起来,得到 "world hello",即为以相反的顺序打印出字符串的单词。

具体实现上,我们可以使用一个栈来保存切分出的每一个单词,然后再将栈中的元素依次出栈并拼接起来即可。

代码示例
def reverse_words(s: str) -> str:
    """
    以相反的顺序打印字符串的单词

    :param s: 原始字符串
    :return: 以相反的顺序打印出字符串的单词
    """
    # 将字符串按照空格切分成若干个单词
    words = s.split()
    # 使用一个栈保存切分出的每一个单词
    stack = []
    for word in words:
        stack.append(word)
    # 将栈中的元素依次出栈并拼接起来
    result = ""
    while stack:
        result += stack.pop()
        result += " "
    return result.strip()
性能分析
  • 时间复杂度:O(n),其中 n 表示字符串中的单词数量。
  • 空间复杂度:O(n),其中 n 表示字符串中的单词数量。我们需要使用一个栈来保存切分出的每一个单词。