Числовая строка красива, если ее можно разбить на последовательность из двух или более положительных целых чисел , удовлетворяющую следующим условиям:
- для любого (т. е. каждый элемент последовательности больше предыдущего).
- No содержит начальный ноль. Например, мы можем разбить на последовательность , но это не красиво, потому что и имеют ведущие нули.
- Содержимое последовательности не может быть изменено. Например, мы можем разделить на последовательность , но это некрасиво, потому что нарушает наше первое ограничение (т. е. ).
На диаграмме ниже показаны некоторые красивые струны:
Выполнять запросы, каждый из которых состоит из некоторой целочисленной строки. Для каждого запроса выведите в новой строке, является ли строка красивой. Если красиво, выведите YES x
, где первое число возрастающей последовательности. Если имеется несколько таких значений , выберите наименьшее. В противном случае выведите NO
.
Описание функции
Завершите функцию splitNumbers в редакторе ниже.
для отдельного номера есть следующий параметр:
- s: целочисленное значение, представленное в виде строки
Печатает
- строка: печатает строку, как описано выше. Ничего не вернуть.
Формат ввода
Первая строка содержит целое число , количество строк для оценки.
Каждая из следующих строк содержит целую строку для запроса.
Ограничения
Образец ввода 0
7 1234 91011 99100 101103 010203 13 1
Пример вывода 0
YES 1 YES 9 YES 99 NO NO NO NO
Пояснение 0
Первые три числа красивые (см. схему выше). Остальные числа некрасивы:
- При все возможные расщепления нарушают первое и/или второе условие.
- Для он начинается с нуля, поэтому все возможные расщепления нарушают второе условие.
- Для единственным возможным расщеплением является , что нарушает первое условие.
- Для нет возможных расщеплений, потому что имеет только одну цифру.
Пример входных данных 1
4 99910001001 7891011 9899100 999100010001
Пример вывода 1
YES 999 YES 7 YES 98 NO
решение
вы можете просмотреть решение в повторе или в приведенном ниже коде копирования и вставки
/
функция отдельные числа (ы) {
// Напишите здесь свой код
пусть действительно = ложь;
пусть число = ''
пусть подстрока = ''
for(пусть i = 0;i‹Math.floor(s.length)/2;i++){
число += s[i];
пусть newNumber = BigInt (число);
пусть новая строка = '';
подстрока = число;
пусть к = 0;
в то время как (newString.length ‹ s.length) {
новаяСтрока += новоеЧисло.toString();
новыйЧисло++;
k++
// console.log(newString,newString.length);
}
если (новая строка === с) {
допустимо = верно;
перерыв;
}
еще{
действительно = ложь;
}
}
если (s.length ‹2) {
действительно = ложь;
}
если (действительно) {
console.log('ДА',подстрока)
}еще{
console.log('НЕТ')
}
}