• python经典百题之字符串长度


    题目:写一个函数,求一个字符串的长度,在 main 函数中输入字符串,并输出其长度。

    程序分析

    我们需要编写一个函数来计算给定字符串的长度。字符串长度即是字符串中字符的数量。

    方法1:使用内置函数 len()

    解题思路

    • 使用内置函数 len() 可以直接计算字符串的长度。

    代码实现

    def calculate_length_using_len(string):
        return len(string)
    
    # Example usage in main function
    def main():
        input_string = input("Enter a string: ")
        length = calculate_length_using_len(input_string)
        print(f"The length of the string is: {length}")
    
    if __name__ == "__main__":
        main()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    优缺点

    • 优点:
      • 简单、快速,内置函数 len() 提供了直接的解决方案。
    • 缺点:
      • 无明显缺点。

    方法2:遍历字符串计数

    解题思路

    • 遍历字符串,每遍历到一个字符就增加计数器的值,最终得到字符串的长度。

    代码实现

    def calculate_length_using_iteration(string):
        count = 0
        for char in string:
            count += 1
        return count
    
    # Example usage in main function
    def main():
        input_string = input("Enter a string: ")
        length = calculate_length_using_iteration(input_string)
        print(f"The length of the string is: {length}")
    
    if __name__ == "__main__":
        main()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    优缺点

    • 优点:
      • 简单,不依赖额外的函数。
    • 缺点:
      • 需要遍历整个字符串,时间复杂度为O(n),其中n是字符串的长度。

    方法3:递归计算字符串长度

    解题思路

    • 使用递归的方式计算字符串的长度,每次递归将字符串长度减1,直到字符串为空。

    代码实现

    def calculate_length_using_recursion(string):
        if string == "":
            return 0
        else:
            return 1 + calculate_length_using_recursion(string[1:])
    
    # Example usage in main function
    def main():
        input_string = input("Enter a string: ")
        length = calculate_length_using_recursion(input_string)
        print(f"The length of the string is: {length}")
    
    if __name__ == "__main__":
        main()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    优缺点

    • 优点:
      • 可以使用递归来解决,递归思路清晰。
    • 缺点:
      • 递归可能在长字符串上导致栈溢出,不适用于极长的字符串。

    总结和推荐

    • 推荐方法1(使用内置函数 len())
      • 具有较好的时间复杂度和空间复杂度。
      • 简单、快速,直接使用内置函数即可。

    综上所述,推荐使用内置函数 len() 来计算字符串长度。

  • 相关阅读:
    Spring Boot——yml和properties详解
    【Elasticsearch专栏 11】深入探索:Elasticsearch如何支持多租户架构
    Mac m1 上编译阿里 OSS c++ 供 UE 使用
    TTS | 保姆级端到端的语音合成VITS论文总结及项目实现(超详细图文代码)
    【JVM】类加载机制:分析与验证
    《Java 多线程实战系列》- 01 基本概念与底层原理
    【区块链 | Compound】2.剖析DeFi借贷产品之Compound:合约篇
    ActiveMQ消息中间件简介
    如何在 🤗 Space 上托管 Unity 游戏
    Spring整合第三方框架-MyBatis整合Spring实现
  • 原文地址:https://blog.csdn.net/yechuanhui/article/details/133482935