如何使用 C# 检查两个字符串是否是彼此的变位词?


在变位下,另一个字符串的特征与第一个字符串的特征相同,但特征的顺序可能不同。

此处,我们检查了下列两个字符串 −

string str1 = "silent";
string str2 = "listen";

将这两个字符串转换为特征数组 −

char[] ch1 = str1.ToLower().ToCharArray();
char[] ch2 = str2.ToLower().ToCharArray();

现在,对其进行排序 −

Array.Sort(ch1);
Array.Sort(ch2);

排序之后,将它们转换为字符串 −

string val1 = new string(ch1);
string val2 = new string(ch2);

比较两个字符串的相等性。如果两者相等,则这意味着它们是变位词。

以下为代码 −

示例

 实时演示

using System;

public class Demo {
   public static void Main () {
      string str1 = "silent";
      string str2 = "listen";
      char[] ch1 = str1.ToLower().ToCharArray();
      char[] ch2 = str2.ToLower().ToCharArray();
      Array.Sort(ch1);
      Array.Sort(ch2);
      string val1 = new string(ch1);
      string val2 = new string(ch2);

      if (val1 == val2) {
         Console.WriteLine("Both the strings are Anagrams");
      } else {
         Console.WriteLine("Both the strings are not Anagrams");
      }
   }
}

输出

Both the strings are Anagrams

更新于: 22-6-2020

超过 1K 次观看

开启你的职业生涯

完成课程以获得认证

开始
广告