文字列の数字が昇順であるかどうかを調べたい場合は、昇順でない場合はTRUEを、それ以外の場合はFALSEを出力する必要があります。文字列の数値シーケンスを増やすjava
重要*:文字列の順序NUMBERS」 を持って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){
}
}
}
`
は、これは私が今までに書いたコードですが、私はより大きな数字のために実行する方法を理解カント99または999のような1。あなたはどのようにこれを実行するか、この疑問を解決するために、任意の他の最適な方法を教えすることはできますか?
おかげ Aasthaジャイナ
私は、所望の結果を達成するための最良の方法は、入力文字列が* *スペースで区切られていないと思います。 ** 9 9 9 **、** 99 9 **、** 9 99 **、または** 999 ** –
たとえば、** 999 **と同様に、次のように解釈できます。インデント)あなたの人間可読性のコード。私は、個人的に、このようなコードを見て拒否するので、幸運。 – Andreas
@DenIsahac。返信ありがとう。しかし、文字列の始めに3桁の数字(999)または2桁の数字(99)または1桁の数字(9)を考慮する必要があると判断する方法。それは非常に混乱しています。アドバイスをお願いします。 –