Loading...
ivayloknchv avatar ivayloknchv 2 Точки

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"

 

Не мога да си открия грешката в кода. Може ли помощ?

Кодът: https://pastebin.com/SsxXvzmu

Тагове:
0
Module: C# Advanced
svephoto avatar svephoto 1191 Точки

Здравей, колега,

 

Би ли дал пълното условие на задачата (плюс Input и Оutput)?

0
04/11/2019 13:23:49
ivayloknchv avatar ivayloknchv 2 Точки

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

Input Output
1 23 29 18 43 21 20
Add 5
Remove 5
Shift left 3
Shift left 1
End
43 20 5 1 23 29 18
5 12 42 95 32 1
Insert 3 0
Remove 10
Insert 8 6
Shift right 1
Shift left 2
End
Invalid index
5 12 42 95 32 8 1 3

 

0
svephoto avatar svephoto 1191 Точки

Може би проблемът ти се крие е тук: при проверките за "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" си осигуряваш излизането от цикъла още в началото без да има нужда да влизаш и вътре да проверяваш.

0
04/11/2019 14:02:33
knoteva avatar knoteva 1081 Точки

Здравей,

1. При "Insert" трябва да проверяваш дали индексът е валиден. Тоест - command[2]

2. Разменил си "left" и "right" командите. Тоест "left" трябва да прави, това, което прави "right", а "right" - "left".

0
ivayloknchv avatar ivayloknchv 2 Точки

Много благодаря за отговора! Оправих нещата и вече Judge ми дава 100/100.

0
04/11/2019 13:32:22
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.