如何使用 C# 返回第一个唯一字符,且不使用内置函数?


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

示例 1

aabccd -→ 2 1 2 1 → 返回第一个值为 1 的字符。即 b,通过 ASCII 值减法获得。

示例 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

更新于: 27-8-2021

173 次浏览

开启你的 职业生涯

完成课程即可获得认证

开始学习
广告
© . All rights reserved.