是否有一种使用if/else方法快速选择三个字符串(s1,s2,s3)中最长的一个?
我试过用这样的东西
if (s1.length() > s2.length()) {
System.out.println(s1); ...
但没有正确处理。
string a = "123";
string b = "1322";
string c = "122332";
if (a.Length > b.Length && a.Length > c.Length)
{
Console.WriteLine(a);
}
else if (b.Length > c.Length)
{
Console.WriteLine(b);
}
else
{
Console.WriteLine(c);
}
}
您可以在C#中使用if,else if,else(如果您实际上没有使用Java,看起来您确实使用了)来处理这个问题。
string current = str;
if(str2.Length > current.Length)
{
current = str2;
}
if (str3.Length > current.Length)
{
current = str3;
}
除非使用if/else是此代码的要求,否则使用集合和LINQ将是一个更干净的选项。
List<string> strList = new List<string>
{
"str",
"strLen",
"strLength"
};
// This aggregate will return the longest string in a list.
string longestStr = strList.Aggregate("", (max, cur) => max.Length > cur.Length ? max : cur);
不要试图用if-else构造来编程所有可能的组合,因为如果添加更多的字符串,复杂性将呈指数增长。
此解决方案适用于少量线性复杂度的字符串:
string longest = s1;
if (s2.length() > longest.length()) {
longest = s2;
}
if (s3.length() > longest.length()) {
longest = s3;
}
System.out.println(longest);
对于数量较多的字符串,将它们放在集合中,然后使用循环查找最长的字符串。
我正在为自己学习DP,我可以轻松解决最长回文子串的长度,但很难真正打印最长回文子串。我检查了一个视频链接,他展示了一种获得LPS的方法,但我无法让它适用于更长的序列。考虑geeksforgeeks的例子: 现在在我的方法中,我将填充表格的底部三角形,如下所示: 因此,对于上述字符串,我的DP表如下所示: 这是视频中原始矩阵的转置,反过来,我不需要单独处理len 1,2, 所以问题是,为什么我在dp
问题内容: 我正在尝试从DbgView日志文件中删除前两列(我对此不感兴趣)。我似乎找不到从第3列开始直到行尾打印的示例。请注意,每行都有可变的列数。 问题答案: …或更简单的解决方案: 只需添加正确的定界符(-d),您将获得相同的效果。
我希望用户能够输入一段字符串(我知道该怎么做) 然后我想让Python计算每个元音(aeiou)使用了多少次。 在计算了每个元音使用的次数后,我需要程序返回最少使用的元音,至少使用一次。如果没有使用元音,就不应该返回。如果最少使用的数量相同,则两者都应退回。 如果没有使用元音,它应该打印一个错误代码“没有使用元音”(我知道怎么做) 例如:如果这是元音在一个句子中使用的次数: 它应该打印“最少使用的
目前控制台打印循环中的所有值,但只需要打印最后一个
假设我有这个文本“1729373672---jsd72h” 客户ID:1729373672客户密码:jsd72h
longestCommonSubsequence正在返回LCS的长度。代码运行良好。但我试图打印子序列的值。例如,它应该打印“acef”。但我的代码只打印“ae”<如何修复? 这是完整的代码https://pastebin.com/Sq4QMtxF
我想打印一个字符串作为valuei尝试遵循宏[2]和“set”[1]选项,但仍然没有运气; [1] 我怎样才能使我的速度测试版打印像;?
问题内容: 如何多次重复一个字符串?我知道我可以使用for循环,但是我想在每一行中重复一行字符串时间。 例如,如果用户输入,则输出将是: 其中等于2,等于4。 问题答案: 要么