2012-04-24 45 views
9

Không tìm thấy gì cụ thể cho sự cố của tôi trong tìm kiếm:Regex: Số lần xuất hiện số lẻ của một từ

Tôi có một bảng chữ cái {a, b, c}, nơi tôi cần tạo một chuỗi số của một.

trị: ababaccccc baaaccccc taxi caabaaac

không hợp lệ: BAAC caacccb caabbbaac

Attempt:

\b[bc]*a{3}[bc]*\b nhưng điều này là rất hạn chế.

Trả lời

2

Nếu bạn cần giải pháp mà không regex tức là 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

tại sao không có biến boolean được gọi là hợp lệ, bắt đầu là false và thay đổi trạng thái bất cứ khi nào chúng ta gặp phải ký tự 'a': Chuỗi arr [] = {"ababaccccc", "baaaccccc", "caabaaac", "baac", "caacccb", "caabbbaac"}; cho (Chuỗi chuỗi: arr) { bool valid = false; cho (int i = 0; i

0

Nó sẽ không thể dễ dàng hơn để

  1. chia chuỗi đầu vào khoảng trắng
  2. đếm ' a trong mỗi phần tử
  3. dựa trên kết quả đếm hay chấp nhận?
Các vấn đề liên quan