สร้างอาร์เรย์ว่างขนาด 256 วนลูปผ่านสตริงทั้งหมดตัวอักษรทีละตัวและเพิ่มค่าในอาร์เรย์ใหม่ ในที่สุดวนลูปผ่านอาร์เรย์ทั้งหมดและคืนค่าตัวอักษรแรกที่มีค่า 1
ตัวอย่าง 1
aabccd → 2 1 2 1 → คืนค่าตัวอักษรแรกที่มีจำนวน 1 นั่นคือ b โดยการลบด้วยค่า ASCII
ตัวอย่าง 2
using System;
namespace ConsoleApplication
{
public class Arrays
{
public char ReturnCharacterOfFirstUniqueCharachter(string s)
{
int index = -1;
int[] arrayValues = new int[256];
for (int i = 0; i < s.Length; i++)
{
int value = s[i] - 'a';
arrayValues[value] += 1;
}
for (int i = 0; i < s.Length; i++)
{
int value = s[i] - 'a';
if (arrayValues[value] == 1)
{
index = i;
break;
}
}
return s[index];
}
}
class Program
{
static void Main(string[] args)
{
Arrays a = new Arrays();
Console.WriteLine(a.ReturnCharacterOfFirstUniqueCharachter("bbookisgreat"));
Console.ReadLine();
}
}
}
ผลลัพธ์
k