Tôi đang xem xét các giải pháp ghi chép mã hóa và nhận thấy vấn đề sau:Khi nào khởi tạo một mảng với 256
Thực hiện một thuật toán để xác định chuỗi có tất cả các ký tự duy nhất không. Nếu bạn không thể sử dụng cấu trúc dữ liệu bổ sung thì sao?
Đây là một trong những giải pháp cung cấp:
public static boolean isUniqueChars2(String str) {
boolean[] char_set = new boolean[256];
for (int i = 0; i < str.length(); i++) {
int val = str.charAt(i);
if (char_set[val]) return false;
char_set[val] = true;
}
return true;
}
Tại sao các mảng char_set
khởi tạo với kích thước 256? Tôi đã nghĩ rằng đó là bởi vì có 128 ký tự ascii nhưng tôi không chắc chắn. Ngoài ra, giải pháp này có vẻ là trong Java, nhưng sẽ có một kích thước ban đầu cũng cần thiết nếu điều này đã được thực hiện trong C + +?
Mã của bạn chỉ hoạt động nếu các giá trị chỉ có giá trị là 8 bit. Vì 2^8 là 256. –
@ElliottFrisch Bạn có thể cung cấp ví dụ về các ký tự có thể không hợp lệ không? – loremIpsum1771
Điều gì đó giống như '' có thể là một vấn đề. –