Wpis z mikrobloga

Krótka zagadka, co robi następująca funkcja? Polecam zastanowić się bez otwierania REPLa.

Wersja pythonowa:

foo = lambda n: re.match(r"^(11+)\1+$", '1' * n) is None
Wersja javowa:

public static boolean foo(int n)
{
return !Pattern.matches("^(11+)\1+$", StringUtils.repeat("1", n));
}

#programowanie #python #java #codegolf
  • 11
  • Odpowiedz
@misza_zg: Jasne
^: początek linii
(11+): grupa, która składa się z dwóch lub więcej jedynek
\1+: dopasowuje dokładnie to, co dopasowała poprzednia grupa jeden lub więcej razy
$: koniec linii
  • Odpowiedz