如何使用 C# 在没有内置函数的情况下返回第一个唯一字符的索引?
创建一个长度为256的空新数组,逐个字符遍历整个字符串并递增新数组中的值。最后遍历整个数组并返回值为1的第一个字符。
示例1
aabccd-→2121→返回第一个计数为1的字符,即b。
示例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(); } } }输出结果
0