C#失败案例的漂亮字符串测试案例

C#失败案例的漂亮字符串测试案例,c#,C#,我有一个问题: 当约翰还是个孩子的时候,他没有太多的事情要做。没有互联网,没有Facebook,也没有可供黑客入侵的程序。所以他做了他唯一能做的事。。。他评估了弦的美,试图发现世界上最美的弦 给定一个字符串s,小约翰尼将字符串的美定义为其中字母的美的总和。每个字母的美都是一个介于1和26之间的整数(包括1和26),并且没有两个字母具有相同的美。约翰尼不在乎字母是大写还是小写,所以这不会影响字母的美观。(例如,大写字母“F”和小写字母“F”一样漂亮。) 你是一名学生,正在写一篇关于这位著名黑客的年

我有一个问题:

当约翰还是个孩子的时候,他没有太多的事情要做。没有互联网,没有Facebook,也没有可供黑客入侵的程序。所以他做了他唯一能做的事。。。他评估了弦的美,试图发现世界上最美的弦

给定一个字符串s,小约翰尼将字符串的美定义为其中字母的美的总和。每个字母的美都是一个介于1和26之间的整数(包括1和26),并且没有两个字母具有相同的美。约翰尼不在乎字母是大写还是小写,所以这不会影响字母的美观。(例如,大写字母“F”和小写字母“F”一样漂亮。)

你是一名学生,正在写一篇关于这位著名黑客的年轻人的报告。你找到了约翰尼认为最漂亮的绳子。这根绳子最大的美是什么

输入样本:

程序应接受文件名路径作为其第一个参数。此文件中的每一行都有一个句子。例如

ABbCcc
Good luck in the Facebook Hacker Cup this year!
Ignore punctuation, please :)
Sometimes test cases are hard to make up.
So I just go consult Professor Dalves
输出样本:

打印出字符串的最大美丽度。例如

152
754
491
729
646
这是我的C语言代码:

static void Main(字符串[]args)
{
StreamReader myR=新的StreamReader(args[0]);
List myL=新列表();
而(!myR.EndOfStream)
{
myL.Add(myR.ReadLine());
}
foreach(myL中的字符串项)
{
int maxulnum=0;
字符串温度=item.ToLower();
char[]myC=temp.ToCharArray();
string[]tempS=新字符串[myC.Length];
字符串计数;
for(int i=0;i='a'&&myC[i]='a'&&myC[i]!string.IsNullOrWhiteSpace(w)).ToArray();
List myCounterList=新列表();
while(tempS.Length>=1)
{
整数计数=0;
tempCount=tempS[0];
对于(int j=0;jw!=tempCount.ToArray();
}
字符串[]myCounterString=myCounterList.ToArray();
Array.Sort(myCounterString);
Array.Reverse(myCounterString);
for(int i=0;i
它运行正常,只有一些测试,但我找不到其他测试,因为它运行失败。 任何人都可以告诉我代码运行测试失败。

这里有一个计算字符串“美丽”的基本程序:

void Main()
{
    string[] inputs =
    {
        "a",
        "z",
        "A test",
        "A TEST",
        "a test"
    };

    foreach (var input in inputs)
    {
        var beauty =
            (from c in input
             let C = char.ToUpper(c)
             where C >= 'A' && C <= 'Z'
             select (int)(C - 'A') + 1).Sum();
        beauty.Dump(input);
    }
}

这是我今早在互联网上读到的最奇怪的事情……这与问题的措辞不当有关。你是否试图找到字母到美的映射,从而为给定字符串产生最高可能的总美?如果是,我建议使用
int[26]
直接从输入字符串中统计A、B等的数量(从每个字符中减去“A”;如果大于32,则减去32。如果结果为0..25,则撞击相应的数组元素),然后考虑如何计算这些计数的美丽。您编写的代码令人困惑,并且不清楚它在计算什么。但是,如果您想知道您的程序可能会失败,我建议使用字符串“AAAAAAAAAABB”,如果我正确理解问题,它的美丽应该是310(26*10+25*9)。我猜你的程序可能会输出302。那么,我从哪里得到你抽的烟呢?我从来没有见过Dump方法,似乎在帮助中找不到它。你能解释一下它的作用吗,只是出于我自己的好奇?或者它的名称空间,这样我就可以查找它了?它是一个扩展方法。它没有内置到.NET中。真的谢谢你Lasse V.Karlsen。我是C#的新手,所以我没有太多的知识来练习优雅。
void Main()
{
    string[] inputs =
    {
        "a",
        "z",
        "A test",
        "A TEST",
        "a test"
    };

    foreach (var input in inputs)
    {
        var beauty =
            (from c in input
             let C = char.ToUpper(c)
             where C >= 'A' && C <= 'Z'
             select (int)(C - 'A') + 1).Sum();
        beauty.Dump(input);
    }
}
string[] lines = File.ReadAllLines(fileName);