Напишите класс с именем SameEnds
. Напишите SameEndsTester
, чтобы проверить свой класс. SameEnds
определяет, имеет ли array list
одинаковую последовательность чисел слева и в конце, и если да, то какова длина этой последовательности.
Вы не будете запрашивать у пользователя данные. Введите данные теста с помощью конструктора SameEnds
из SameEndsTester
. Вы можете предположить, что все элементы в array list
являются целыми числами.
For example, the array list
1 4 9 10 11 12 1 4 9
имеет одинаковую последовательность 1 4 9
слева и справа и имеет length 3
. Следовательно, ваш SameEndsTester
напечатает “The longest sequence is 1 4 9, and the sequence length is 3”
.
Если arraylist
не имеет общей последовательности слева и справа, например
1 4 9 16 25
SameEndsTester
должен распечатать «Нет общих последовательностей».
Две последовательности не могут перекрываться. Например, в массиве
1 1 1 1
последовательность 1 1
происходит слева и справа, и ваш метод должен вернуть “The longest sequence is 1 1, and the sequence length is 2”
.
Чтобы просмотреть вопрос и увидеть работу проще или увидеть его ниже
import java.util.ArrayList;
import java.util.Scanner;
public class SameEnds {
Scanner scan = new Scanner(System.in);
private ArrayList<Integer> nums; // for list of names
public SameEnds(ArrayList<Integer> nums) {
this.nums = nums;
}
public void testEnds() {
String data = "";
for (int i = 0; i < nums.size(); i++)
if (nums.get(i) == nums.get(nums.size() - i))
data += nums.get(i) + " ";
System.out.println("The longest sequence is + " + data);
}
@Override
public String toString() {
return "SameEnds [nums=" + nums + "]";
}
}
import java.util.ArrayList;
public class SameEndsTester {
public static void main(String[] args) {
// int [] inta = {1,2,3,4,1,2};
ArrayList<Integer> ali = new ArrayList<Integer>();
ali.add(1);
ali.add(2);
ali.add(3);
ali.add(4);
ali.add(1);
ali.add(2);
SameEnds typeNum = new SameEnds(ali);
typeNum.testEnds();
System.out.print(typeNum);
}
}
Пожалуйста, помогите мне решить эту конкретную проблему и весь вопрос.