Heterogram: Chuỗi không có ký tự lặp lại (mỗi chữ cái xuất hiện tối đa một lần). Ví dụ: "Mobile", "Cry", "Laptop".
Thuật toán: Duyệt từng ký tự, dùng mảng 26 phần tử đánh dấu đã gặp.
for (int i = 0; i < len; i++)
{
if (val[str[i] - 'a'] == 0)
val[str[i] - 'a'] = 1;
else
return false;
}
Ví dụ hoàn chỉnh
using System;
public class GFG
{
static bool CheckHeterogram(string str, int len)
{
int[] val = new int[26];
for (int i = 0; i < len; i++)
{
if (val[str[i] - 'a'] == 0)
val[str[i] - 'a'] = 1;
else
return false;
}
return true;
}
public static void Main()
{
string str = "mobile";
int len = str.Length;
if (CheckHeterogram(str, len))
Console.WriteLine("Chuỗi là Heterogram!");
else
Console.WriteLine("Chuỗi không phải Heterogram!");
}
}
Kết quả
Chuỗi là Heterogram!
Lưu ý: Code giả định chuỗi chỉ chứa chữ cái thường a-z. Cần xử lý thêm cho chữ hoa, khoảng trắng, ký tự đặc biệt.