如何使用 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
廣告