温馨提示:这篇文章已超过283天没有更新,请注意相关的内容是否还可用!
百度Java面试题中可能会涉及到许多不同的主题,例如数据结构、算法、多线程等。在这里,我以一个关于字符串的面试题为例进行讲解。
面试题:给定一个字符串,判断该字符串是否是回文字符串。
回文字符串是指正向和反向读都一样的字符串。要判断一个字符串是否是回文字符串,我们可以比较字符串的正向和反向读是否相同。
示例代码如下:
public class Palindrome {
public static boolean isPalindrome(String str) {
int left = 0;
int right = str.length() - 1;
while (left < right) {
if (str.charAt(left) != str.charAt(right)) {
return false;
}
left++;
right--;
}
return true;
}
public static void main(String[] args) {
String str1 = "level";
String str2 = "hello";
System.out.println(isPalindrome(str1)); // 输出 true
System.out.println(isPalindrome(str2)); // 输出 false
}
}
在示例代码中,我们定义了一个静态方法 `isPalindrome`,该方法接收一个字符串作为参数。我们使用两个指针 `left` 和 `right` 分别指向字符串的首尾字符。
在 `while` 循环中,我们比较 `left` 和 `right` 指向的字符是否相同。如果不相同,则说明字符串不是回文字符串,我们可以直接返回 `false`。如果相同,则将 `left` 向右移动一位,将 `right` 向左移动一位,继续比较下一对字符。
当 `left` 大于等于 `right` 时,说明已经比较完了字符串的所有字符,且每一对字符都相同,因此可以返回 `true`。
在 `main` 方法中,我们分别传入了一个回文字符串和一个非回文字符串作为参数调用 `isPalindrome` 方法,并打印结果。结果表明,第一个字符串是回文字符串,而第二个字符串不是回文字符串。
通过这个例子,我们可以看到,通过比较字符串的正向和反向读是否相同,我们可以判断一个字符串是否是回文字符串。这是一种常见的字符串问题,在面试中也可能会被提到。