Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

ตรวจสอบว่าทั้งสองส่วนของสตริงมีชุดอักขระเหมือนกันใน C # หรือไม่


ขั้นแรก ตั้งค่าสตริงที่จะตรวจสอบ

string s = "timetime";

ตอนนี้ตั้งค่าตัวนับสองตัวสำหรับสองส่วนของสตริง

int []one = new int[MAX_CHAR];
int []two = new int[MAX_CHAR];

ตรวจสอบทั้งสองส่วนของสตริง

for (int i = 0, j = l - 1; i < j; i++, j--) {
   one[str[i] - 'a']++;
   two[str[j] - 'a']++;
}

ต่อไปนี้เป็นรหัสที่สมบูรณ์เพื่อตรวจสอบว่าทั้งสองส่วนของสตริงมีชุดอักขระเหมือนกันหรือไม่ใน C #

ตัวอย่าง

using System;
class Demo {
   static int MAX_CHAR = 26;
   static bool findSameCharacters(string str) {
      int []one = new int[MAX_CHAR];
      int []two = new int[MAX_CHAR];
      int l = str.Length;
      if (l == 1)
      return true;
      for (int i = 0, j = l - 1; i < j; i++, j--) {
         one[str[i] - 'a']++;
         two[str[j] - 'a']++;
      }
      for (int i = 0; i < MAX_CHAR; i++)
      if (one[i] != two[i])
      return false;
      return true;
   }
   public static void Main() {
      string str = "timetime";
      if (findSameCharacters(str))
      Console.Write("Yes: Two halves are same!");
      else
      Console.Write("No! Two halves are not same!");
   }
}

ผลลัพธ์

Yes: Two halves are same!