2010-03-15 49 views
8

Tôi đang cố gắng tạo ma trận bên dưới trong vb.net của mình để trong quá trình xử lý, tôi có thể lấy điểm số cho bảng chữ cái, ví dụ: Kết quả phù hợp cho A và N ?, tôi sẽ nhìn vào ma trận inbuilt của tôi và trả lại -2 Tương tự như vậy, phù hợp cho P và L là gì ?, Tôi sẽ xem xét ma trận sẵn có của tôi và trả về -3Cấu trúc dữ liệu tốt nhất và đơn giản

Vui lòng đề xuất cách thực hiện, tôi đã cố gắng sử dụng từ điển lồng nhau như thế này:

Dim myNestedDictionary As New Dictionary(Of String, Dictionary(Of String, Integer))() 
Dim lTempDict As New Dictionary(Of String, Integer) 
lTempDict.Add("A", 4) 
myNestedDictionary.Add("A", lTempDict) 

Cách khác có thể là đọc ma trận từ tệp dựa trên văn bản và sau đó điền vào hai dimens mảng ion.

Cảm ơn.

alt text http://www.clcbio.com/scienceimages/img8.png

+0

Bạn có muốn chia sẻ với chúng tôi về những gì bạn sẽ sử dụng để làm? – chakrit

Trả lời

5

Tôi nghĩ sẽ đơn giản hơn khi sử dụng từ điển chưa được lồng với các khóa gồm hai ký tự.

myDictionary.add("AA", 4) 
+0

+1 Tôi vừa mới đề xuất điều này. –

+0

Cùng suy nghĩ ở đây. – chakrit

+0

Theo đúng hướng, nhưng với kích thước của dữ liệu tôi nghĩ một SortedList có thể làm tốt hơn. –

3

Sử dụng một mảng hai chiều và tạo ra một bản đồ cho bảng chữ cái của bạn như là một điều tra đó cũng sẽ đóng vai trò như một chỉ số vào mảng:

public enum AlphaBet 
{ 
    A = 0, 
    R = 1, 
    ... 
} 

// Init the array 
int[][] scores = ...; 

int score = scores[AlphaBet.A][AlphaBet.N]; // score = -2 
+1

Tại sao tạo ra một enum thay vì chỉ đơn giản là sử dụng 'char' như là chìa khóa? –

+0

@Frederic - Tôi không theo. Làm thế nào bạn sẽ sử dụng 'char' như là chìa khóa? – Oded

+0

Tôi cho rằng đó là vì có một số lượng ký tự hạn chế được sử dụng. Xây dựng một mảng bao gồm tất cả các ký tự từ A-Z sẽ tiêu thụ quá nhiều bộ nhớ. Thay vào đó, là sử dụng phương pháp tìm kiếm được lập chỉ mục, chỉ lưu trữ các chỉ mục cho các ký tự được sử dụng nhưng sau đó .... đó chính xác là những gì Enum cung cấp. – chakrit

1

lấy một từ điển mà các bản đồ char sang int . các int phải được tuần tự. sau đó lấy mảng 2d, thats it. trước tiên, bạn nhìn vào từ điển cho chỉ mục cho cả hai ký tự, sau đó chuyển đến mảng

Các vấn đề liên quan