Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C#을 사용하여 내장 함수 없이 첫 번째 고유 문자의 인덱스를 반환하는 방법은 무엇입니까?

<시간/>

길이가 256인 비어 있는 새 배열을 만들고 전체 문자열을 문자별로 탐색하고 새 배열의 값을 증가시킵니다. 끝에서 전체 배열을 탐색하고 값이 1인 첫 번째 문자를 반환합니다.

예시 1

aabccd -→2 1 2 1 → count가 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