如何检查是否可以使用另一个字符串获取字符串';c#中的s个字符
本文关键字:字符串 获取 中的 字符 另一个 何检查 检查 可以使 是否 | 更新日期: 2023-09-27 18:21:07
我正在设计一个问题,在这个问题中,我想找出一个给定字符串可以从另一个只使用一次字符的基字符串中找到(形成)多少次。
假设我有
string str = "COMPUTER";
string basestr = "**TER** WITH **R** LABEL **COMPUTER** BELONGS TO **COMPUT** QUICK CUTE **COM** FOX JUM **P** S **U** R **T** H **E** LAZY DOG";
所以希望我的程序为这个sting-basestr返回3。这里有一台电脑,另一台是两个单词,最后一台是单词和字符。
请帮我编程?我该怎么做?感谢
首先,构造短字符串的字符数。然后构造长字符串的字符计数。对于短字符串的每个字符计数,将长字符串的计数除以短字符串的计数,只保留整数部分。选择最小的整数——这就是你的问题的答案。
int[] Count(string s) {
int[] res = new int[256];
foreach (var c in s) {
res[c]++;
}
return res;
}
int ShortInLong(string ss, string ls) {
var sc = Count(ss);
var lc = Count(ls);
int res = int.MaxValue;
foreach (var c in ss) {
int d = lc[c] / sc[c]; // sc[c] is never 0 because of the way we constructed it
res = Math.Min(res, d);
}
return res;
}