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

จะคืนดัชนีของอักขระที่ไม่ซ้ำกันตัวแรกโดยไม่มีฟังก์ชัน inbuilt โดยใช้ 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