第五章第五十一题(最长的共同前缀)(Longest common prefix)
原创
©著作权归作者所有:来自51CTO博客作者wx63d882c621cf8的原创作品,请联系作者获取转载授权,否则将追究法律责任
*5.51(最长的共同前缀)编写一个程序,提示用户输入两个字符串,显示两个字符串最长的共同前缀。
下面是运行示例:
Enter the first string: Welcome to C++
Enter the second string: Welcome to programming
The common prefix is Welcome to
Enter the first string: Atlanta
Enter the second string: Macon
Atlanta and Macon have no common prefix
*5.51(Longest common prefix) Write a program that prompts the user to enter two strings and displays the largest common prefix of the two strings.
Here are some sample runs:
Enter the first string: Welcome to C++
Enter the second string: Welcome to programming
The common prefix is Welcome to
Enter the first string: Atlanta
Enter the second string: Macon
Atlanta and Macon have no common prefix
下面是参考答案代码:
import java.util.*;
public class LongestCommonPrefixQuestion51 {
public static void main(String[] args) {
int lengthUserString1, lengthUserString2;
String userString1, userString2, prefixString = "";
Scanner inputScanner = new Scanner(System.in);
System.out.print("Enter the first string: ");
userString1 = inputScanner.nextLine();
lengthUserString1 = userString1.length();
System.out.print("Enter the second string: ");
userString2 = inputScanner.nextLine();
lengthUserString2 = userString1.length();
for (int strIndex = 0; strIndex < (lengthUserString1 > lengthUserString2 ? lengthUserString2
: lengthUserString1); strIndex++) {
if (userString1.charAt(strIndex) == userString2.charAt(strIndex)) {
prefixString += userString1.charAt(strIndex);
continue;
}
break;
}
if (prefixString.length() != 0)
System.out.println("The common prefix is " + prefixString);
else
System.out.printf("%s and %s have no common prefix", userString1, userString2);
inputScanner.close();
}
}
运行效果:
注:编写程序要养成良好习惯
1.文件名要用英文,具体一点
2.注释要英文
3.变量命名要具体,不要抽象(如:a,b,c等等),形式要驼峰化
4.整体书写风格要统一(不要这里是驼峰,那里是下划线,这里的逻辑段落空三行,那里相同的逻辑段落空5行等等)
5.普通变量,方法名要小驼峰,类名要大驼峰,常量要使用全部大写加上下划线命名法
6.要学习相应的代码编辑器的一些常用快捷键,如:快速对齐等等