1 / 20
Apr 2016

Wykładam się na tym zadaniu. Wyświetli ktoś test(y), które uświadomią mi co przespałem? Testy własne przechodzą (lokalnie), uwzględniam też polskie krzaczki. Nie mam czegoś na starej klawiaturze (wątpię, ale spytać warto)?

IN:
1
9lHgp4kDePlMdefARCTyKBLH@
OUT:
9lHgp4kDePlMdefARCTyKBLH@

Dzięki za test. Wyrugował mi poważny błąd. Ale i tak WA. Przy czym zrezygnowałem ze sprawdzania naszych znaków (może niepotrzebnie), sprawdzam (choć nie wiem czy ma to uzasadnienie) tabulatora poziomego i znaku euro, którego nie mam na klawiaturze. W zasadzie nie wiem czego się trzymać. Kodowanie znaków? Z tym nigdy nie było problemów.

Czyż space nie zajmuje dużo miejsca na klawiaturze?

No to mam zagwozdkę. Bardzo cenię podpowiedzi narbeja choć niektóre wydają się być poza ogarnięciem dla staruszków jak ja:)

AC i dzięki za wskazówki.

Też walczę z tym zadaniem. Czy możliwe w nim są litery z alfabetów spoza podstawowego ASCII? Mój program wyróżnia cztery kategorie: duże litery łacińskie(A-Z), małe litery łacińskie(a-z), cyfry(0-9), cała reszta.

Więc twój program nie powinien mieć problemu także z

Ale czy nie ma problemu z tym o czym napisałem kilka postów wyżej?

PS
Przy okazji pozdrowienia dla staruszków od staruszka, który zjadł już prawie wszystkie zęby ....

Spacja zalicza się do reszty i działa. A problem z literami z innych alfabetów może wynikać z tego, że nie są traktowane jak litery i np.
Paśśw0rd jest uznawane za prawidłowe, a
PAśśw0RD@ nie

A w takim razie, co powiesz [twój program] o:

3
Ala ma 2 koty i 1 psa
lub na odwrot
1 kota i 2 psy ma Ala

PS
Twoje oba testy, mój program uznał za poprawne.

Pierwsze i trzecie hasło poprawne, drugie błędne.

a co do mojego przykładu z poprzedneigo posta. Mój błąd. Miało być tak:
Paśśw0rd jest uznawane za prawidłowe, a
PAśśW0RD@ nie

Ty skupiłeś się na dziwnych literach, ja na spacjach, bo sam miałem z tym problem.
Proponuję Ci zapomnieć o dziwnych znakach i ich testowaniu - traktuj to wszystko jako 4 kategorię - i jeszcze raz przeczytać treść zadania.
Nie widząc twojego kodu, trudno zgadywać co masz źle, czy wymyślać testy, na których się wyłoży twój program.
W końcu w tym zadaniu nie ma tak dużo filozofi.
1. Hasło musi być >= 8 znaków.
2. Zawierać co najmniej po jednym znaku z 4 grup-kategorii - gdzie 4 kat jest czymkolwiek co nie należy do żadnej z 3 pierwszych grup.
3. Jeżeli spełnia te warunki, wypisujemy je, jeżeli nie, nie [nic nie robimy].
Więc błąd możesz mieć w dowolnym momencie - w sposobie sprawdzania przynależności do grup itd.

Co prawda c#, ale kod prosty, oczywisty, więc może ktoś coś wskaże:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace password
{
    class Program
    {
        static void Main(string[] args)
        {
            int cases = int.Parse(Console.ReadLine());
            for (int i = 0; i < cases; i++)
            {
                string a = Console.ReadLine();
                if (a.Length > 7)
                {
                    bool small = true;
                    bool large = true;
                    bool num = true;
                    bool others = true;
                    int j = 0;
                    while ((small || large || num || others) && j < a.Length)
                    {
                        if (a[j] >= '0' && a[j] <= '9')
                        {
                            num = false;
                        }
                        else
                        {
                            if (a[j] >='A' && a[j] <= 'Z')
                            {
                                large = false;
                            }
                            else
                            {
                                if (a[j] >='a' && a[j] <='z')
                                {
                                    small = false;
                                }
                                else
                                {
                                    others = false;
                                }
                            }
                        }
                        j++;
                    }
                    if (!large && !small && !num && !others)
                    {
                        Console.WriteLine(a);
                    }
                }
            }
        }
    }
}

Jeden

WIELKI

błąd
Wklejanie do dupy.
Wklejasz, zaznaczasz calusienki kod i klikasz w </> w menu.

W tak wklejonym kodzie trudno cokolwiek zauważyć, więc tylko wydaje mi się.
Warunki:
if (..){
}
else if ( ..) {
}
pisze się właśnie w taki, powyższy sposób, a nie
if (..){
}
else {
if (..) - dziwne, że to się kompiluje i nie ma błędu. Chyba, że to tylko złe wklejenie?

A jednak niezupełnie. Poprzedni test miał na pewno powyżej 256 znaków ale dużo poniżej 1000 i był ok. Teraz jednak zrobiłem większy - linia ma 1007 i już jest bee: http://ideone.com/jAW9Xg19
Więc może ten limit to np 512 ?

Limit to 254(256 - dwa znaki na techniczne np. koniec linii)
Dla mnie taki if else jest w miarę naturalny...
Faktycznie wczytywanie bez zmiany bufora to chyba błąd, więc dzięki Wam wielkie. Teraz wiem co poprawiać.

27 days later

Czy możliwe jest by w testach wystąpiło hasło ze spacją na końcu?

5 months later

Siema, to mój pierwszy wpis na forum, więc proszę o wyrozumiałość :slight_smile:
Czy mógłby ktoś naprowadzić gdzie jest błąd?
Nie wiem czy poprawne hasło może mieć hasło na początku i końcu. Poza tym sprawdzałem testy i działa ok, nawet dla długich ciągów.
kod:

4 months later