Computer >> Máy Tính >  >> Lập trình >> C#

Làm cách nào để trả về chỉ mục của ký tự duy nhất đầu tiên không có các hàm có sẵn bằng C #?

Tạo một mảng mới trống có độ dài 256, duyệt qua toàn bộ chuỗi ký tự theo từng ký tự và tăng giá trị trong mảng mới. Cuối cùng, duyệt qua toàn bộ mảng và trả về ký tự đầu tiên có giá trị 1.

Ví dụ 1

aabccd - → 2 1 2 1 → Trả về ký tự đầu tiên có số đếm 1. Đó là b.

Ví dụ 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();
      }
   }
}

Đầu ra

0