Я работаю над проектом, в котором мне нужно добавить метод ниже в SampleQueue
классе -.
public static boolean isValid(String s)
Метод выше должен сделать это - он будет принимать строку как входной параметр,Рассмотрим строки, которые можно разбить так, чтобы их первая половина совпадала со второй (игнорируя пробелы, знаки препинания и регистр).Например, строка «treetree» может быть разбита на «дерево» и «дерево».Другой пример - «мир, мир».После игнорирования пробелов и запятой две половины строки совпадают.Однако строка «kattan» имеет неравные половины, как и строка «abcab».
В основном мой метод должен возвращать значение true, если строка имеет свойство выше, и значение false в противном случае.Для реализации метода нам нужно использовать только методы в классе SampleQueue
, как показано ниже:
public class SampleQueue<T> {
private T[] queue;
private int frontIndex;
private int backIndex;
private static final int DEFAULT_INITIAL_CAPACITY = 200;
public SampleQueue() {
this(DEFAULT_INITIAL_CAPACITY);
}
public SampleQueue(int initialCapacity) {
T[] tempQueue = (T[]) new Object[initialCapacity + 1];
queue = tempQueue;
frontIndex = 0;
backIndex = initialCapacity;
}
public void enqueue(T newEntry) {
ensureCapacity();
backIndex = (backIndex + 1) % queue.length;
queue[backIndex] = newEntry;
}
public T getFront() {
T front = null;
if (!isEmpty())
front = queue[frontIndex];
return front;
}
public T dequeue() {
// some stuff here
}
private void ensureCapacity() {
// some stuff here
}
public boolean isEmpty() {
// some stuff here
}
public void clear() {
// some stuff here
}
public static boolean isValid(String s) {
if (s == null || s.isEmpty()) {
return false;
}
SampleQueue<Character> myQueue = new SampleQueue<>();
for (char ch : s.trim().toLowerCase().toCharArray()) {
if ((ch >= 'a' && ch <= 'z') || (ch >= '0' && ch <= '9'))
myQueue.enqueue(ch);
}
// all is this right way to check the length?
if (myQueue.queue.length % 2 == 1) {
return false;
}
// now I am confuse here?
}
}
Я реализовал несколько вещей в основе метода isValid
на основе этой логики, которую придумал, но я запуталсяЧто делать, чтобы длина регистра была четной?
Поставить в очередь все символы строки - за исключением пробелов и знаков пунктуации - по одному за раз.Пусть длина очереди будет n.Если n нечетно, вернуть false.Если n четно, то что мне делать?