4. List Operations
You will be given a list of integer numbers on the first line of input. You will be receiving operations you have to apply on the list until you receive the "End" command. The possible commands are:
Add {number} – add number at the end.
Insert {number} {index} – insert number at given index.
Remove {index} – remove at index.
Shift left {count} – first number becomes last ‘count’ times.
Shift right {count} – last number becomes first ‘count’ times.
Note: there is a possibility that the given index is outside of the bounds of the array. In that case print "Invalid index"
Не мога да си открия грешката в кода. Може ли помощ?
You will be given a list of integer numbers on the first line of input. You will be receiving operations you have to apply on the list until you receive the "End" command. The possible commands are:
Add {number} – add number at the end.
Insert {number} {index} – insert number at given index.
Remove {index} – remove at index.
Shift left {count} – first number becomes last ‘count’ times.
Shift right {count} – last number becomes first ‘count’ times.
Note: there is a possibility that the given index is outside of the bounds of the array. In that case print "Invalid index"
Examples
Add 5
Remove 5
Shift left 3
Shift left 1
End
Insert 3 0
Remove 10
Insert 8 6
Shift right 1
Shift left 2
End
5 12 42 95 32 8 1 3
Може би проблемът ти се крие е тук: при проверките за "Insert" и "Remove" за това дали не си излязъл извън големината на списъка опитай да махнеш равното при "int.Parse(command[1])>=numbers.Count" и да остане само ">". Ако е с ">=" трябва да бъде "int.Parse(command[1])>=numbers.Count - 1". Виж какво ще стане.
Опитай да сложиш проверките за "left" и "right" като отделни проверки вътре в проверка само за "Shift" и виж дали ще имаш прогрес. В момента проверяваш два пъти за "Shift" - веднъж в комбинация с "right" и веднъж с "left". Но това може би само като опция, ако не произтича проблем от това.
И един съвет: избягвай проверка в началото на цикъла, която е с "while (true)". По-добре си сложи "while (cmmnd != "End")", например. Така, ако имаш команда "End" си осигуряваш излизането от цикъла още в началото без да има нужда да влизаш и вътре да проверяваш.