Tôi đang cố gắng tạo một chương trình Ruby đếm số lần hai chữ cái xuất hiện cùng nhau. Đây là những gì được viết trong file tôi đang đọc:Đếm số lần hai chữ cái xuất hiện cùng nhau
hola
chau
Và đây là những gì tôi đang cố gắng để có được:
ho;ol;la;ch;ha;au;
1;1;1;1;1;1;
tôi không thể làm cho nó hoạt động đúng. Đây là mã của tôi cho đến nay:
file = File.read(gets.chomp)
todo = file.scan(/[a-z][a-z]/).each_with_object(Hash.new(0)) {
|a, b| b[a] += 1
}
keys = ''
values = ''
todo.each_key {
|key| keys += key + ';'
}
todo.each_value {
|value| values += value.to_s + ';'
}
puts keys
puts values
Đây là kết quả tôi nhận được:
ho;la;ch;au;
1;1;1;1;
Tại sao tôi không nhận được mọi sự kết hợp của các nhân vật? Tôi nên quảng cáo gì với regex của mình để nó sẽ tính mọi kết hợp của các ký tự?
Rất có tính hướng dẫn, Avinash. Trước đây tôi chưa từng thấy một nhóm chụp bên trong một nhóm nhìn chung. Rất mạnh. –
Thay vào đó, bạn có thể sử dụng cái nhìn tích cực phía sau (? <= ([A-z] [a-z])) ', mà bạn đã ám chỉ trong một nhận xét mà bạn đã xóa. Tôi nghĩ nó xứng đáng được đề cập đến. –