Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

วิธีคืนค่าดัชนีของตัวอักษรแรกที่ไม่ซ้ำกันโดยไม่ใช้ฟังก์ชัน built-in ด้วย C#


สร้างอาร์เรย์ว่างขนาด 256 วนลูปผ่านสตริงทั้งหมดตัวอักษรทีละตัวและเพิ่มค่าในอาร์เรย์ใหม่ ในที่สุดวนลูปผ่านอาร์เรย์ทั้งหมดและคืนค่าตัวอักษรแรกที่มีค่า 1

ตัวอย่าง 1

aabccd → 2 1 2 1 → คืนค่าตัวอักษรแรกที่มีจำนวน 1 นั่นคือ b

ตัวอย่าง 2

using System;

namespace ConsoleApplication
{
    public class Arrays
    {
        public int ReturnIndexOfFirstUniqueCharachter(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 index;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Arrays a = new Arrays();
            Console.WriteLine(a.ReturnIndexOfFirstUniqueCharachter("bookisgreat"));
            Console.ReadLine();
        }
    }
}

ผลลัพธ์

0