编写一个程序,提示用户输入两个字符串,显示两个字符串最长的共同前缀。 输入输出示例如下: 输出格式表示如下(用“*”表示空格,“$"表示换行) Enter*the*first*string:* Enter*the*second*string:* The*common*prefix*is*Welcome to$或者Helloword*and*welcome*have*no*common*prefix$
时间: 2025-05-02 19:44:55 浏览: 22
### 实现两个字符串最长公共前缀的程序
为了实现一个能够计算两个字符串最长公共前缀的程序,可以采用简单的字符逐一比较方法。以下是基于此逻辑的一个具体实现方案。
#### Python 实现代码
```python
def longest_common_prefix(str1, str2):
# 找到较短字符串长度以防止越界访问
min_length = min(len(str1), len(str2))
# 初始化公共前缀为空字符串
common_prefix = ""
# 遍历两字符串中的对应字符直到发现不同之处
for i in range(min_length):
if str1[i] == str2[i]:
common_prefix += str1[i]
else:
break
return common_prefix
# 主函数用于接收用户输入并调用上述功能函数
if __name__ == "__main__":
# 获取第一个字符串
first_string = input("Enter the first string: ")
# 获取第二个字符串
second_string = input("Enter the second string: ")
# 调用函数获取最长公共前缀
result = longest_common_prefix(first_string, second_string)
# 判断是否有公共前缀并输出相应结果
if result != "":
print(f"The common prefix is {result}")
else:
print(f"{first_string} and {second_string} have no common prefix.")
```
#### C++ 实现代码
```cpp
#include <iostream>
#include <string>
using namespace std;
// 定义求解最长公共前缀的功能函数
string longestCommonPrefix(const string& str1, const string& str2) {
// 取得两者中较小的长度以防越界
size_t minLength = min(str1.size(), str2.size());
// 存储最终的结果
string commonPrefix;
// 循环逐个对比字符直至找到不同的地方或者到达最短串结束处
for (size_t i = 0; i < minLength; ++i) {
if (str1[i] == str2[i]) {
commonPrefix += str1[i];
} else {
break;
}
}
return commonPrefix;
}
int main() {
// 接收用户的两次输入
string firstString, secondString;
cout << "Enter the first string: ";
getline(cin, firstString);
cout << "Enter the second string: ";
getline(cin, secondString);
// 计算得到最长公共前缀
string result = longestCommonPrefix(firstString
阅读全文
相关推荐
















