[C#] Задачата "Magic Words" от 2013/2014 @ 14 Sept 2013 - Morning


1

Задачката е "Magic Words" от 2013/2014 @ 14 Sept 2013 - Morning

Някой може ли да ми погледне кода и да ми каже защо ми гърми? Написал съм си два метода за двете операции (reorder и print). И четирите нулеви тестове минават успешно, но в bgcoder ми дава само 33 точки.

Това ми е кода: http://pastebin.com/JU0Gnvnw




Отговори



2
  1.             list.Remove(buffer);
  2.             list.Insert(newIndex, buffer);
Тук трябва да се замислиш и да разгледаш какво става когато дадената дума се мести "назад" и "напред" спрямо текущата си позиция.

от JulianG (5316 точки)


0
InsertAt трябва да се използва

от Yordan.Bonev (780 точки)

0
@CuST0M1z3 - Аз не знам да съществува такова "InsertAt" ?

от georgi.s.yankov (6219 точки)



1

На тази задача не и разбирам първата част с подреждането:

 

Reorder: The reordering operation over n words is performed by sequentially moving the words at positions 0, 1, …, n-1 to positions corresponding to their lengths. More precisely, first the word w0 from position 0 is moved to position len(w0) % (n+1), then the word w1 from position 1 is moved to position len(w1) % (n+1), and so on. Finally the word wn-1 from position n-1 is moved to position len(wn-1) % (n+1). Note that positions are numbered from 0 to n and position 0 is just before the leftmost word and position n is just after the rightmost word.

 

Малко разяснение..... ? 


от Svetoslav1987 (1061 точки)


0
Малко е кофти, да. Погледни коментарите под отговора на колегата @juliang. Постнал съм и работещо решение.

от georgi.s.yankov (6219 точки)

0
Въобще не ясно нито условието на частта reorder, нито от примерите се разбира какво въобще трябва да се направи. Учудващо е как една толкова проста задача е описана по толкова неясен начин.

от smvalkov (596 точки)


0
Реших задачата и със всички 15 теста работи. Но като я вкарам в BGCODER ми дава 0 точки . И за всички проби ми дава Format Exeption. Но докато си пробвах програмата сам с тестовете не ми хвърляше такива Exeptions . Защо като го вкарам в BGCODER го прави?

от Svetoslav1987 (1061 точки)


0
дай линк към кода така малко трудно някой би ти дал обяснение :)

от dzhenko (3893 точки)

0
http://pastebin.com/FRDRViek

от Svetoslav1987 (1061 точки)


0

Здравейте,

някой може ли да ми даде идея как да го оптимизирам, че не се вмествам в time лимита на bgcoder, дава ми лимит и взимам само 86/100. Ето го и кода към задачата -> http://pastebin.com/VJCREK6F

Благодаря.


от victor.velchev (1225 точки)


0
Пробва ли да ползваш StringBuilder за отпечатването?

от anilak (1134 точки)

0
Ами не, още не сме го учили и не съм го използвал. Трябва да го погледна в stackoverflow или dotnetperls. Мерси

от victor.velchev (1225 точки)


0
http://pastebin.com/MBdSpUSx - кратко решение с два метода - обръщне и принтиране

от geniusvil (192 точки)


0
Незнам нарочно ли условието е написано неразбираемо, но нищо не разбрах. Като видях едно решение веднага ми светна :(

от ivan.mihov1 (4988 точки)


1
И аз не разбирам нищо от условието - или табличният пример е объркан или аз не схващам каква е логиката.
Някой би ли обяснил с прости думи, без да поства готово решение защото, който иска да я реши - не желае да гледа готови решения?

от todor_pr (1527 точки)

0
Аз го разбрах, след като видях решение. Значи това за формулката го четеш буквално. После обаче където пише елемента отива на новата позиция, означава, че трябва да му направиш Insert на тази позиция. След това в списъка остава един null, махаш го с Remove и списъка се пренарежда. Така имаш новата подредба на елементите след текущото размествване. После повтаряш същата процедура със следващия подред елемент, който заради разместването може да се окаже същия. На дадения пример точно така става, 2 пъти Insertvat 'ha' и само един път 'exam'.
Обаче е обяснено супер заблуждаващо, на изпит ако се падне такова условие съм шах и мат :D

от ivan.mihov1 (4988 точки)