Софтуерно Инженерство
Loading...
leonnybg avatar leonnybg 5 Точки

Задача: 06. Compare Char Arrays от Java Basics - Exercises...

Здравейте! Заиграх се с една проста задача, за мен не беше толкова, но да споделя!

Задачата е 06. Compare Char Arrays от Java Basics - Exercises...

С това решение минава на 100/100 в джъджа.

Но измисляйки си ето този вход

a a b

a b c,

не получавам искания резултат, който трябва да е

aab

abc.

В конзолата си получавам като изход:

abc

aab. Tъй като влязъл веднъж в последния ми еlse си се отпечатват и програмата приключва...

Търся сега решение на този проблем, но само споделих как една програма може да ни даде 100/100 и да не е пълна, така да го кажа!!! :)

Ако някой ми даде решение на остатъка от измисления ми проблем, добре дошъл! Хубава неделя!

import java.util.Arrays;
import java.util.Scanner;

public class P06CompareCharArrays {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String input1 = scanner.nextLine().replaceAll("\\s+", "");
        String input2 = scanner.nextLine().replaceAll("\\s+", "");
        char[] arr1 = input1.toCharArray();
        char[] arr2 = input2.toCharArray();
        int arrLength = Math.min(arr1.length, arr2.length);
        for (int i = 0; i < arrLength; i++) {

            if (arr1[i] != arr2[i]) {
                if (arr1[i] < arr2[i]) {
                    System.out.println(arr1);
                    System.out.println(arr2);
                    return;
                }
                else {
                    System.out.println(arr2);
                    System.out.println(arr1);
                    return;
                }
            }
            if (arr1[i] == arr2[i] && arr1.length<arr2.length ) {
                System.out.println(arr1);
                System.out.println(arr2);
                return;
            }
            else{
                System.out.println(arr2);
                System.out.println(arr1);
                return;
            }
        }
    }
}

    //String str = "Hi There";
    //char[] arr = str.toCharArray();

    //for(int i=0;i<arr.length;i++)
       // System.out.print(" "+arr[i]);
bond4o avatar bond4o 8 Точки

Ами кода ти е грешен, но няма тест който да ти хване грешката, това е обяснението. Ето то едно решение което работи.
 

import java.util.Scanner;

public class Main {

    private static String first;

    private static String second;

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        first = scanner.nextLine().replace(" ", "");
        second = scanner.nextLine().replace(" ", "");
        //swap strings so the shorter one is first
        if (first.length() > second.length()) {
            String temp = first;
            first = second;
            second = temp;
        }

        for (int i = 0; i < first.length(); i++) {
            if (first.charAt(i) > second.charAt(i)) {
                String temp = first;
                first = second;
                second = temp;
                break;
            }
        }
        System.out.println(first);
        System.out.println(second);
    }
}
0