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

Làm thế nào để trả về ký tự duy nhất đầu tiên mà không cần sử dụng 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 bằng cách trừ với các giá trị ascii.

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

Đầu ra

k