题解 | #配置文件恢复#
https://www.nowcoder.com/practice/ca6ac6ef9538419abf6f883f7d6f6ee5
没搞明白,本地是没问题的,在线就一直数组越界。
-------------------------------------------------------------------
愚公移山
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ProjectSample { //HJ66 class Program { static void Main(string[] args) { string input = string.Empty; while (!string.IsNullOrEmpty(input = Console.ReadLine().ToLower().Trim())) { if (input.Split(' ').Length > 2) { PrintFailure(); continue; } if (!input[0].Equals('r') && !input[0].Equals('b')) { PrintFailure(); continue; } if (input.Length == 0) { PrintFailure(); continue; } if (input.Split(' ').Length == 1) { if (!input[0].Equals('r')) { PrintFailure(); continue; } else { if (!"reset".Contains(input)) { PrintFailure(); continue; } else { Console.WriteLine("reset what"); } } } else { string word1 = input.Split()[0]; string word2 = input.Split()[1]; if (!word2[0].Equals('b') && !word2[0].Equals('a') && !word2[0].Equals('d')) { PrintFailure(); continue; } // reset board // reboot board if (word1[0].Equals('r')) { if (word1.Equals("r") | word1.Equals("re")) { if (!word2.Contains("ba") && !word2.Contains("bo")) { PrintFailure(); continue; } } if ("reset".Contains(word1)) { if (!"board".Contains(word2)) { PrintFailure(); continue; } else { Console.WriteLine("board fault"); } } else if ("reboot".Contains(word1)) { if (!"backplane".Contains(word2)) { PrintFailure(); continue; } else { Console.WriteLine("impossible"); } } else { PrintFailure(); continue; } } // board add // board delete // backplane abort else if (word1[0].Equals('b')) { if (word1.Equals("b")) { if (!word2[0].Equals('a') && !word2[0].Equals('d')) { PrintFailure(); continue; } if (word2.Equals("a")) { PrintFailure(); continue; } } if ("board".Contains(word1)) { if (!word2[0].Equals('a') && !word2[0].Equals('d')) { PrintFailure(); continue; } if (word2[0].Equals('a')) { if ("add".Contains(word2)) { Console.WriteLine("where to add"); continue; } else { PrintFailure(); continue; } } if (word2[0].Equals('d')) { if ("delete".Contains(word2)) { Console.WriteLine("no board at all"); continue; } else { PrintFailure(); continue; } } } else if ("backplane".Contains(word1)) { if (!word2[0].Equals('a')) { PrintFailure(); continue; } if ("abort".Contains(word2)) { Console.WriteLine("install first"); continue; } else { PrintFailure(); continue; } } else { PrintFailure(); continue; } } } } } static void PrintFailure() { Console.WriteLine("unknown command"); } } }