Trong bài viết này, chúng ta sẽ tìm hiểu cách kiểm tra xem một chuỗi có phải là Pangram hay không. Chuỗi Pangram là chuỗi chứa tất cả các chữ cái trong bảng chữ cái (bỏ qua chữ hoa/thường).
Ví dụ minh họa
Đầu vào:
Chuỗi đầu vào: Abcdefghijklmnopqrstuvwxyz
Đầu ra mong muốn:
Có, chuỗi là một pangram
Thuật toán
- Bắt đầu
- Khai báo chuỗi
input_string - Gán giá trị
- Chuyển chuỗi thành mảng ký tự
- Duyệt mảng, kiểm tra xem có chứa đủ 26 chữ cái bằng
charAt(i) - 'a' - Nếu đủ, là Pangram
- Hiển thị kết quả
- Kết thúc
Ví dụ 1: Xử lý trực tiếp trong main
public class Pangram {
static int size = 26;
static boolean isLetter(char ch) {
if (!Character.isLetter(ch))
return false;
return true;
}
public static void main(String args[]) {
String input_string = "Abcdefghijklmnopqrstuvwxyz";
System.out.println("Chuỗi được định nghĩa: " + input_string);
int string_length = input_string.length();
input_string = input_string.toLowerCase();
boolean[] is_true = new boolean[size];
for (int i = 0; i < string_length; i++) {
if (isLetter(input_string.charAt(i))) {
int letter = input_string.charAt(i) - 'a';
is_true[letter] = true;
}
}
boolean result = true;
for (int i = 0; i < size; i++) {
if (!is_true[i])
result = false;
}
if (result)
System.out.println("\nCó, chuỗi là một pangram");
else
System.out.println("\nKhông, chuỗi không phải là pangram");
}
}
Kết quả
Chuỗi được định nghĩa: Abcdefghijklmnopqrstuvwxyz Có, chuỗi là một pangram
Ví dụ 2: Sử dụng phương thức tách biệt (OOP)
public class Pangram {
static int size = 26;
static boolean isLetter(char ch) {
if (!Character.isLetter(ch))
return false;
return true;
}
static boolean check_alphabets(String input_string, int string_length) {
input_string = input_string.toLowerCase();
boolean[] is_true = new boolean[size];
for (int i = 0; i < string_length; i++) {
if (isLetter(input_string.charAt(i))) {
int letter = input_string.charAt(i) - 'a';
is_true[letter] = true;
}
}
for (int i = 0; i < size; i++) {
if (!is_true[i])
return false;
}
return true;
}
public static void main(String args[]) {
String input_string = "Abcdefghijklmnopqrstuvwxyz";
System.out.println("Chuỗi được định nghĩa: " + input_string);
int string_length = input_string.length();
if (check_alphabets(input_string, string_length))
System.out.println("\nCó, chuỗi là một pangram");
else
System.out.println("\nKhông, chuỗi không phải là pangram");
}
}
Kết quả
Chuỗi được định nghĩa: Abcdefghijklmnopqrstuvwxyz Có, chuỗi là một pangram