Half of the half - wyznaczenie co drugiego znaku z polowy stringa

0

Witam, zrobiłem algorytm, według mnie poprawnie działający, jednak spoj twierdzi inaczej "wrong answer", niestety nie jestem w stanie znaleźć swojego błedu, ponieważ wynik który zwraca jest poprawny.
LInk do treści : http://www.spoj.com/problems/STRHH/
Ktoś go ukończył ?

class Algorytm{

    private static List<String> results = new ArrayList<>();

    public static void main (String[] args) {
        inputOutput();
        show();
    }

    private static void inputOutput() {
        Scanner sc = new Scanner(System.in);
        int t = sc.nextInt();
        if (t <= 100 && t >= 1) {
            for (int i = 0; i <= t; i++) {
                String rawString = sc.nextLine();
                calculate(rawString);
            }
        }
    }

    private static void show() {
        for (String result : results) {
            System.out.println(result);
        }
    }

    private static void calculate(String rawString) {
        StringBuilder finishChars = new StringBuilder();
        int numberOfChars = rawString.length();
        if (numberOfChars <= 100 && numberOfChars >= 1 && numberOfChars % 2 == 0) {
            for (int j = 0; j < rawString.length() / 2; j = j + 2) {
                finishChars.append(rawString.charAt(j));
            }
            results.add(String.valueOf(finishChars));
        }
    }
}
1

Pierwszy komentarz na stronie:

WARNING: Problem description is inconsistent with judging.

  1. The most obvious discrepancy is that the problem description says "every second character", but it actually means "every other character starting with the first".

2. Secondly, statement clearly states -- twice -- that each line will be 2k characters, but some of the test cases have lines that are 2k+1 characters

0

@lubie_programowac:
dzięki, nie spodziewałem się, że w komentarzach są pożyteczne informację, ale nie zmienia to faktu, że ten algorytm spełnia wymagania

1

Po pierwsze, dlaczego w ogóle dokonujesz tych zbytecznych sprawdzeń typu if (t <= 100)? Któryś zestaw danych ma więcej niż 100 linijek? Pozbądź się wszelkiego sprawdzenia poprawności wejścia.

1
watpliwosci napisał(a):

ty, uprościłem to i śmiga

import java.util.Scanner;

class Main {

    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        int t = sc.nextInt();
        for (int i = 0; i <= t; i++) {
            String rawString = sc.nextLine();
            for (int j = 0; j < rawString.length() / 2; j = j + 2) {
        	   System.out.print(rawString.charAt(j));
        	}
        	System.out.println();
        }
    }
}

p.s.
ten z---any portal na którym nie widać testow ani nie mozesz sobe odpalic z wlasnymi testami zostaw onanistom z gimnazjum

1 użytkowników online, w tym zalogowanych: 0, gości: 1