Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Cách trả về chỉ số ký tự duy nhất đầu tiên không dùng hàm có sẵn C#

Tạo mảng mới độ dài 256, duyệt chuỗi ký tự bởi ký tự, tăng giá trị trong mảng mới. Cuối cùng duyệt mảng, trả về chỉ số 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ó đế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();
        }
    }
}

Kết quả

0

Giải thích: Chuỗi "bookisgreat". Ký tự 'b' tại chỉ số 0 xuất hiện 1 lần. Trả về chỉ số 0. Tương tự bài trước nhưng trả về index thay vì ký tự. Giả định chỉ có chữ thường.