2012-04-24 11 views
9

znaleziono nic konkretnego do mojego problemu w wyszukiwaniach:Regex: nieparzysta liczba wystąpień char

Mam alfabetu {a, b, c}, gdzie trzeba stworzyć zbiór łańcuchów, które mają nieparzystą liczba a.

Ważny: ababaccccc baaaccccc kabina caabaaac

nieważny: BAAC caacccb caabbbaac

Próba:

\b[bc]*a{3}[bc]*\b ale to jest bardzo ograniczona.

Odpowiedz

2

Jeśli potrzebujesz rozwiązanie bez regex tj Java:

String arr[] = {"ababaccccc", "baaaccccc" , "caabaaac", "baac", "caacccb", "caabbbaac"}; 

for (String string : arr) { 
      int counter = 0; 
      for (int i = 0; i < string.length(); i++) { 
       if (string.charAt(i) == 'a') { 
        counter++; 
       } 
      } 
      if ((counter & 1) == 0) { 
       System.out.println(string + " is invalid"); 
      } else { 
       System.out.println(string + " is valid"); 
      } 
     } 
+0

dlaczego nie mieć zmiennej Boole'a o nazwie valid, która zaczyna się jako false i zmienia stan, gdy napotkamy znak "a": String arr [] = {"ababaccccc", "baaaccccc", "caabaaac", "baac", "caacccb", "caabbbaac"}; dla (ciąg tekstowy: arr) { bool valid = false; dla (int i = 0; i

0

nie byłoby łatwiej

  1. podzielić ciąg wejściowy na spacją
  2. liczyć " a's w każdym elemencie
  3. na podstawie wyniku liczyć przyjąć lub odrzucić?
Powiązane problemy