Loading...
vpl2001 avatar vpl2001 54 Точки

C# / JAVA Advanced Retake Exam - 22 august 2016 [03. NMS]

Здравейте!

Може ли да помоля за решение на тази задача - нещо абсолютно блокирах по нея!

Реших 2ра и 4та, а тази ме спъна неочаквано и за самия мен.

Или поне някой да сподели с две думи логиката - аз ще си я разпиша.

Благодаря!

Тагове:
0
C# Advanced
AntyfrizZz avatar AntyfrizZz 238 Точки

Здравей,

 

Скалъпих едно решение на бързо. Не знам дали е най - доброто, но може да го погледнеш :)

http://pastebin.com/xsS0a4ug

 

Поздрави!

1
vpl2001 avatar vpl2001 54 Точки

Благодаря на теб и всички колеги! Супер сте! Успех на всички! Явно тоя тип задачи нещо не мога да им уцеля подхода! Сега ще я разцъкам!

0
kaloyannikov avatar kaloyannikov 531 Точки

Моята логика е:

1. Вкарвам всичко в 1 StringBuilder.

2. След това обхождам всичко в StringBuilder-a до i < length - 1 

3. Правя нов StringBuilder в който ще пазя резултата.

4. Appendвам буквата и проверявам ако текущата .toLowerCase > следващата .toLowerCase , appendвам интервал( " " )

5. След цикъла appendвам последната буква.

6. Чета какъв е разделителя и replace-вам всички " " със разделителя.

7. Принтирам крайния резултат.

=> http://pastebin.com/QZ99hhJz

1
24/08/2016 19:43:51
StoykoMandzhukov avatar StoykoMandzhukov 11 Точки

1. В While цикъла прочитам всичко до делителя и го апендвам в един StringBuilder.

2. Правя го на стринг, който почвам да обхождам до дължината му - 1 и сравнявам всеки char със следващия като ги превръщама директно в Int-ове да им взема аски кода като имам 4 варианта:

- и двата са Lower.

- И двата са Upper.

-първия е Lower, втория е Upper.

- и обратното.

Понеже ако единия е малък, а другия голям се считат за равни, тук имаш 2 варианта как да сравяняваш в последните два случая: Големият да го направиш малък и да го сравниш с другия малък или към големия char (int-a му, който ти дава директно ASCI кода да прибавиш 36 и тогава да ги сравниш (такава е формулата)).

3. Апендваш в StringBuildera само първия, ако отговаря на условието и първият char + space, който съм си дефинирал като стандартен разделител преди това.

4. Отделно сравнявам и последните 2 char-a накрая по същия начин. 

4. Накрая прочитам делителя и, ако е спейс принтирам стринга от Buildera директно, ако е друг риплейсвам моя делител с този от условиято в целия стринг. 

 

Нямам достъп до кода си в момента, но дано си схванал идеята.:)

1
24/08/2016 22:08:15
StoykoMandzhukov avatar StoykoMandzhukov 11 Точки

Оценките кога ще излезнат, някой има ли инфо?

1
vpl2001 avatar vpl2001 54 Точки

Чакаме! :) Успех!

0
TihomirDimov avatar TihomirDimov 161 Точки

Ето и моето решение. Макс брой точки

https://github.com/tihomirdimov/CSharp/blob/master/02.CSharpAdvanced/CSharpAdvancedExamProblems/20160822Problem03/nms.cs

 

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