Я хочу найти, будут ли цифры в моей строке в порядке возрастания, и если они в порядке возрастания, нам нужно напечатать TRUE else, если они не в порядке возрастания, нам нужно распечатать FALSE ,Увеличение последовательности номеров в строке java
* ВАЖНО: ЕСТЬ НЕТ МЕСТА В STRING, которые ЧИСЛА» Последовательность Строка являются:
CASE 1 :1234 (Easy) 1 <2<3<4 TRUE
CASE 2 :9101112 (Medium) 9<10<11<12 TRUE
CASE 3 :9991000 (Hard) 999<1000 TRUE
CASE 4 :10203 (Easy) 1<02<03 FALSE (numbers cannot have 0 separated).
// converting string into array of numbers
String[] str = s.split("");
int[] numbers = new int[str.length];
int i = 0;
for (String a : str) {
numbers[i] = Integer.parseInt(a.trim());
i++;
}
for(int j=0;j<str.length;j++)
System.out.print(numbers[j]+" ");
//to verify whether they differ by 1 or not
int flag=0;
for(int j=0;j<numbers.length-1;j++){
int result=Integer.parseInt(numbers[j]+""+numbers[j+1]) ;
if(numbers[j]>=0 && numbers[j]<=8 && numbers[j+1]==numbers[j]+1){
flag=1;
}
else if(numbers[j]==9){
int res=Integer.parseInt(numbers[j+1]+""+numbers[j+2]) ;
if(res==numbers[j]+1)
flag=1;
}
else if(result>9){
}
}
}
`
Это код, который я написал до сих пор, но я не могу понять, как выполнить для цифры больше, чем 1, как 99 или 999. Можете ли вы сказать мне, как выполнить это или любой другой оптимальный способ решить этот вопрос?
Благодаря Aastha JAIN
Я думаю, что лучший способ достичь желаемого результата - не содержать входную строку, разделенную * пробелами *. Как, например, ** 999 **, это можно интерпретировать следующим образом: ** 9 9 9 **, ** 99 9 **, ** 9 99 ** или ** 999 ** –
Пожалуйста, научитесь форматировать (indent) ваш код для удобочитаемости человека. Я лично отказываюсь смотреть на такой код, так что удачи. – Andreas
@DenIsahac. Спасибо за ответ . Но как определить, что мы должны рассмотреть 3-значное число (999) или 2-значное число (99) или 1-значное число (9) в начале строки. Это очень запутанно. Пожалуйста, дайте совет. –