Я решил для себя усложнить немного задачу - Можно вводить с клавиатуры любое кол-во чисел через пробел.
В ответ программа будет выводить только дубли (если они есть)
Соответственно программа правильно отрабатывает и изначальные условия (на 3 вводимых числа с клавиатуры)
Но проверка пишет, что программа не дает дубли в ответ
package com.javarush.task.task04.task0417;
/*
Существует ли пара?
*/
import java.io.*;
import java.util.ArrayList;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String name = reader.readLine();
dubl(puzir(zamena(devide(name))));
System.out.println();
}
public static int[] zamena(String[] s) {
int[] tmp = new int[s.length];
for (int i = 0; i < s.length; i++) {
tmp[i] = Integer.parseInt(s[i]);
}
return tmp;
}
public static int[] puzir(int[] s) {
for (int j = 1; j < s.length; j++) {
if (s[j] < s[j - 1]){
int i = j - 1;
while (s[i] > s[i + 1]) {
int temp = s[i];
s[i] = s[i + 1];
s [i + 1] = temp;
i = i - 1;
if (i < 0) break;
}
}
}
return s;
}
public static String[] devide (String s) {
ArrayList<String> tmp = new ArrayList<String>();
int i = 0;
for (int j = 0; j < s.length(); j++) {
if (s.charAt(j) == ',') {
tmp.add(",");
i = j + 1;
}
if (s.charAt(j) == ' ') {
if (j > i) {
tmp.add(s.substring(i, j));
}
i = j + 1;
}
}
if (i < s.length()) {
tmp.add(s.substring(i));
}
return tmp.toArray(new String[tmp.size()]);
}
public static void dubl(int[] s) {
int i = 0;
for (int j = i + 1; j < s.length; j++) {
if (s[i] == s[j]) {
while (s[i] == s[j]) {
if (j +1 == s.length) {
System.out.print(s[j] + " ");
break;
}
j = j +1;
}
for (int n = i; n < j; n++) {
System.out.print(s[n] + " ");
}
System.out.println();
i = j;
}
else {
i = j;
}
}
}
}
package com.javarush.task.task04.task0417;
/*
Существует ли пара?
*/
import java.io.*;
import java.util.ArrayList;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String name = reader.readLine();
dubl(puzir(zamena(devide(name))));
System.out.println();
}
public static int[] zamena(String[] s) {
int[] tmp = new int[s.length];
for (int i = 0; i < s.length; i++) {
tmp[i] = Integer.parseInt(s[i]);
}
return tmp;
}
public static int[] puzir(int[] s) {
for (int j = 1; j < s.length; j++) {
if (s[j] < s[j - 1]){
int i = j - 1;
while (s[i] > s[i + 1]) {
int temp = s[i];
s[i] = s[i + 1];
s [i + 1] = temp;
i = i - 1;
if (i < 0) break;
}
}
}
return s;
}
public static String[] devide (String s) {
ArrayList<String> tmp = new ArrayList<String>();
int i = 0;
for (int j = 0; j < s.length(); j++) {
if (s.charAt(j) == ',') {
tmp.add(",");
i = j + 1;
}
if (s.charAt(j) == ' ') {
if (j > i) {
tmp.add(s.substring(i, j));
}
i = j + 1;
}
}
if (i < s.length()) {
tmp.add(s.substring(i));
}
return tmp.toArray(new String[tmp.size()]);
}
public static void dubl(int[] s) {
int i = 0;
for (int j = i + 1; j < s.length; j++) {
if (s[i] == s[j]) {
while (s[i] == s[j]) {
if (j +1 == s.length) {
System.out.print(s[j] + " ");
break;
}
j = j +1;
}
for (int n = i; n < j; n++) {
System.out.print(s[n] + " ");
}
System.out.println();
i = j;
}
else {
i = j;
}
}
}
}