gpt4 book ai didi

c# - 比较字符串的不同组合

转载 作者:太空宇宙 更新时间:2023-11-03 18:21:18 25 4
gpt4 key购买 nike

<分区>

我有一个字典,键值对如下所示

dict("A-B-C", "This is abc");
dict("X-Y-Z", "This is xyz");
so on

现在,当我收到类似“B-A-C”的输入时,系统应该智能地知道它的“A-B-C”或者它的“Z-Y-X”是否应该映射到“X-Y-Z”,一种方法是将所有组合放入字典中这样说 dict("B-A-C", "A-B-C") 但这可能会导致更多的可维护性,只是想如果有任何来自 .NET 框架的东西可以更容易地解决这个问题。

有没有一种简单的方法来比较如下所示的字符串

A string either A-B or B-A is equal to A-B

A string either A-B-C or B-C-A or A-C-B or C-A-B or C-B-A equals to A-B-C

likewise a different combinations of A-B-C-D should equals to A-B-C-D

so as A-B-C-D-E

so on

上例中的 A B C D E 是两个字母的非数字单词。就像是苏麻菊薇

更新现在我用下面的代码解决了这个问题,它按照我维护的字典中识别的顺序返回字符串标记,不确定它是否是最好的方法,但现在正在解决这个问题

string sortPls(string pls)
{
Dictionary<string, int> dctPls = new Dictionary<string, int>();
dctPls["Su"] = 1;
dctPls["Mo"] = 2;
dctPls["Ju"] = 3;
dctPls["Me"] = 4;
dctPls["Ve"] = 5;
dctPls["Ma"] = 6;
dctPls["Sa"] = 7;
string[] arrPls = pls.Split('-');
int j = 0;
string sortPls = string.Empty;
for(int i = 0; i < arrPls.Length; i++)
{
for (j = i + 1; j < arrPls.Length; j++)
{
if (dctPls[arrPls[j]] < dctPls[arrPls[i]])
{
string tmp = arrPls[i];
arrPls[i] = arrPls[j];
arrPls[j] = tmp;
}
}
}
for (int k = 0; k < arrPls.Length; k++)
sortPls += arrPls[k] + "-";
return sortPls.Remove(sortPls.Length - 1) ;
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com