- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以基本上,我一直在研究这些 codingBat 问题,当我真的遇到困难时,我通常会检查解决方案并跟踪逻辑,这帮助我不会陷入后来使用类似想法的问题。
这个最大镜像问题对我个人来说不像其他问题;我不知道如何实际编写代码来解决它,即使形成算法对我来说也有点棘手
We'll say that a "mirror" section in an array is a group of contiguous elements such that somewhere in the array, the same group appears in reverse order. For example, the largest mirror section in
{1, 2, 3, 8, 9, 3, 2, 1}
is length 3 (the{1, 2, 3}
part). Return the size of the largest mirror section found in the given array.maxMirror({1, 2, 3, 8, 9, 3, 2, 1}) → 3
maxMirror({1, 2, 1, 4}) → 3
maxMirror({7, 1, 2, 9, 7, 2, 1}) → 2
现在,就算法而言,我想说的是,如果我们首先检查整个数组是否是镜像,如果不是,则将检查的区域大小减 1。但就伪代码和真实代码而言,我不知道。
最佳答案
在这种情况下,我的解决方案是您的代码应该始终手动执行,然后弄清楚我处理解决方案的本质。
对于这个问题,我发现自己在查看原始数组的可能子集,然后向后查看原始数组以查看是否可以再次找到相同的子集。
接下来,我将其翻译成伪代码,
for each segment in nums
check if nums contains segment backwards
重复,但这次制定了更多实现细节。
for each segment in nums, starting with the largest
reverse the segment
check if nums contains reversed segment
if it does, return the size of that segment
接下来,在伪代码中找到一些可能的候选方法并编写它们。我选择这样做是为了“反向”和“包含”:
private int[] reverse(int[] nums) {
int[] rtn = new int[nums.length];
for (int pos = 0; pos < nums.length; pos++) {
rtn[nums.length - pos - 1] = nums[pos];
}
return rtn;
}
private boolean contains(int[] nums, int[] segment) {
for (int i = 0; i <= nums.length - segment.length; i++) {
boolean matches = true;
for (int j = 0; j < segment.length; j++) {
if (nums[i + j] != segment[j]) {
matches = false;
break;
}
}
if (matches) return true;
}
return false;
}
最后,实现剩下的:
public int maxMirror(int[] nums) {
for (int window = nums.length; window > 0; window--) {
for (int pos = 0; pos <= nums.length - window; pos++) {
int[] segment = new int[window];
for (int innerpos = 0; innerpos < window; innerpos++) {
segment[innerpos] = nums[pos + innerpos];
}
segment = reverse(segment);
if (contains(nums, segment)) {
return window;
}
}
}
return 0;
}
关于java - codingbat maxMirror 练习的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24986982/
我显然缺少一个“if”语句,但我不知道如何涵盖茶或糖果不是彼此的两倍: Java > Logic-1 > teaParty 我们正在举办一个有大量茶和糖果的聚会。返回编码为 0=bad、1=good
我正在尝试编码 bat 问题repeatFront: Given a string and an int n, return a string made of the first n characte
这是问题; http://codingbat.com/prob/p153748 给定两个 int,每个都在 10..99 范围内,如果有一个数字出现在两个数字中,例如 12 和 23 中的 2,则返回
我正在 codingbat 上解决这个问题它表明我的代码适用于所有情况,但不适用于其他情况。 Given an array of ints, return true if the value 3 ap
我目前正在 codingbat 网站上做一个练习,上面写着: Given an array of ints, compute recursively if the array contains a 6
我正在尝试解决 this CodingBat问题: Squirrels who like to party get together and smoke cigars. Such a party is
对于模棱两可的标题,我深表歉意,我想不出更具体的东西。 为了更好地递归解决问题,我一直在处理 CodingBat 上发布的问题.我的问题与以下问题的变体有关。 original problem是: G
给定任务sameEnds来自 CodingBat: 给定一个字符串,返回出现在字符串开头和结尾且不重叠的最长子字符串。例如,sameEnds("abXab") 是 "ab"。 sameEnds("ab
我正在codingbat.com 上解决Java 问题,并且在这个问题上停止了,scoresAverage。由于练习描述有点复杂,我就直接粘贴在这里: Given an array of scores
我正在做codingbat作为我即将进行的测验的练习。我正在使用递归来解决递归问题,但我的老师说我应该能够使用其他循环来解决这些问题。我认为我应该使用 for 循环,因为它们可以轻松实现相同的结果。
嘿伙计们,我希望有人能向我解释这段代码中的错误?我只是有点难以理解为什么它会抛出异常。 最佳答案 第一个条件检查字符串的最小长度,应为 3。因此“bad”和“xba”通过第一个条件。 让我们先讨论ba
这类似于我之前的努力(wordEnds 和 repeatEnd):作为一种脑力练习,我想仅使用正则表达式来解决这个玩具问题。 Description from codingbat.com : Give
所以基本上,我一直在研究这些 codingBat 问题,当我真的遇到困难时,我通常会检查解决方案并跟踪逻辑,这帮助我不会陷入后来使用类似想法的问题。 这个最大镜像问题对我个人来说不像其他问题;我不知道
我开始学习使用 Java。 我在codingbat ( http://codingbat.com/prob/p123384 ) 中遇到了一个问题:这是我的代码 public String frontB
这是我的任务:给定一个字符串,“xyz”是否出现在字符串的中间?为了定义 middle,我们会说“xyz”左侧和右侧的字符数最多只能相差 1。 使用下面的代码可以看到问题描述和其他用例中的失败here
下面是我用于 no_teen_sum 和后续 fixed_teen 函数的代码。 第一个代码是我提交的 - 并且适用于所有测试用例: def no_teen_sum(a, b, c): # che
我有点困惑为什么我的下面的解决方案没有给出正确的答案。我做了一些挖掘,我猜这与调用的工作方式有关?我认为这两种方式是相同的,但事实并非如此,但我不完全理解我的错误返回的是什么。这是我之前做的研究:ht
如果字符串“cat”和“dog”在给定字符串中出现相同的次数,则返回 True。 这是我正在尝试的问题。我的代码是: def cat_dog(str): count1 = 0 coun
我正在尝试解决这个 CodingBat 问题: (This is a slightly harder version of the fix34 problem.) Return an array th
我试图尽可能多地理解正则表达式,所以我想出了这个基于正则表达式的解决方案来解决 codingbat.com repeatEnd : Given a string and an int N, retur
我是一名优秀的程序员,十分优秀!