java - 创建一个方法来反转数组 String[] 然后检查它是否是回文
问题描述
我必须创建两种方法。一个接受一个字符串数组并颠倒它们的顺序。使用assertArrayEquals
测试,backwards方法通过。然后我必须创建一个方法来检查字符串数组是否是回文,但如果失败则测试。我想也许我在反向方法中搞砸了,但我测试了 12 种不同的方法。我可能真的很累,但是我在这里做错了什么?
public static String[] backwards(String[] array) {
for (int index = 0; index < array.length / 2; index++) {
String string = array[index];
array[index] = array[array.length - index - 1];
array[array.length - index - 1] = string;
}
return array;
}
public static boolean isPalindrome(String[] array) {
if (array == backwards(array)) {
return true;
}
return false;
}
解决方案
这段代码有两个问题:
#1 您正在就地编辑数组。因此,backwards 方法不仅返回一个反转的数组,它还改变了原始数组。
#2 您正在比较两个数组,==
这将检查它是否是同一个实例。你可以Arrays.equals
改用。
public static String[] backwards(String[] array) {
String[] resArray = new String[array.length];
for (int index = 0; index < array.length; index++) {
resArray[index] = array[array.length - index - 1];
}
return resArray;
}
public static boolean isPalindrome(String[] array) {
return Arrays.equals(array, backwards(array));
}
推荐阅读
- azure-data-factory - 无法打开 ADFv2 映射数据流的调试
- javascript - 将对象数组拆分为 2 小时跨度组
- python - 熊猫数据框根据另一列的值填充一列的数组值
- r - 单击 r shiny 中的禁用按钮时弹出
- openid-connect - 发送 responseType = 'id_token' 时在 OIDC 中将 id_token 设为 null
- ruby-on-rails - Rails 和 Razorpay Webhook 设置
- amazon-web-services - 为什么重启后我无法通过 SSH 访问我的 AWS 实例?
- snowflake-cloud-data-platform - 通过自定义验证将临时表数据传输到 Snowflake 中的事实表的过程是什么
- appium - 无法使用 UIAutomator2 向后滚动
- swift - 如何通过 URLSession 下载 USDZ?