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()

优缺点

  • 优点:
    • 简单、快速,内置函数 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()

优缺点

  • 优点:
    • 简单,不依赖额外的函数。
  • 缺点:
    • 需要遍历整个字符串,时间复杂度为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(使用内置函数 len())
    • 具有较好的时间复杂度和空间复杂度。
    • 简单、快速,直接使用内置函数即可。

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

你可能感兴趣的:(python经典百题,python,java,算法)