สร้างอาร์เรย์ใหม่ที่มีความยาว 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