如何在不使用 C# 内置函数的情况下返回第一个唯一字符?

csharpserver side programmingprogramming更新于 2025/6/27 19:52:17

创建一个长度为 256 的新空数组,逐个字符遍历整个字符串,并递增新数组中的值。最后遍历整个数组并返回第一个值为 1 的字符。

示例 1

aabccd -→2 1 2 1 → 返回第一个计数为 1 的字符。即用 ASCII 值减去 b。

示例 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();
      }
   }
}

输出

k

相关文章