我已經創建了一個確定兩個字符串是否排序的方法。我的所有測試用例除了一個以外都可以工作。代碼如下。是我無法確定兩個c#字符串是否排序
class Program
{
static void Main(string[] args)
{
bool test1 = isSorted("test1", "test2");
bool test2 = isSorted("4576", "4567");
bool test3 = isSorted("test10", "test11");
bool test4 = isSorted("abdc", "abcd");
}
public static bool isSorted(string MyFirstString, string MySecondString)
{
string MyFirstCutString = MyFirstString.ToLower();
string MySecondCutString = MySecondString.ToLower();
if (MyFirstString.Length > MySecondString.Length)
MyFirstCutString = MyFirstCutString.Substring(0, MySecondString.Length);
else if (MySecondString.Length > MyFirstString.Length)
MySecondCutString = MySecondCutString.Substring(0, MyFirstCutString.Length);
for (int i = 0; i < MyFirstCutString.Length; i++)
{
if (getNumberic(MyFirstCutString[i]) > getNumberic(MySecondCutString[i]))
return false;
}
return true;
}
public static int getNumberic(char myLetter)
{
switch (myLetter)
{
case 'a':
return 1;
case 'b':
return 2;
case 'c':
return 3;
case 'd':
return 4;
case 'e':
return 5;
case 'f':
return 6;
case 'g':
return 7;
case 'h':
return 8;
case 'i':
return 9;
case 'j':
return 10;
case 'k':
return 11;
case 'l':
return 12;
case 'm':
return 13;
case 'n':
return 14;
case 'o':
return 15;
case 'p':
return 16;
case 'q':
return 17;
case 'r':
return 18;
case 's':
return 19;
case 't':
return 20;
case 'u':
return 21;
case 'v':
return 22;
case 'w':
return 23;
case 'x':
return 24;
case 'y':
return 25;
case 'z':
return 26;
case 'O':
return 27;
case '1':
return 28;
case '2':
return 29;
case '3':
return 30;
case '4':
return 31;
case '5':
return 32;
case '6':
return 33;
case '7':
return 34;
case '8':
return 35;
case '9':
return 36;
default:
return 1000;
}
}
}
測試的結果如下:
test1 result is true
test2 result is false
test3 result is false (NOT GOOD!)
test4 result is true
我看不到我的邏輯任何瑕疵。
這是功課?如果沒有,爲什麼你不使用'string.Compare'? – 2012-04-11 15:03:24
還有一些測試用例,我不確定它們是否像你喜歡的那樣運行:「A」,「B」和「B」,「A」都被認爲是排序的。 「ab」,「a」和「a」,「ab」都被認爲是排序的。 – CodesInChaos 2012-04-11 15:04:34
使用你的代碼test4的結果是'false',當你寫的時候不是true ...這是你需要的嗎? – Marco 2012-04-11 15:15:15