Ultimate Reverse words (its over 9000)
Здравейте,
реших тази задача от тук.
Какво сътворих: https://pastebin.com/ZLdrFRHh
Бих се радвал да видя и други решения, защото не съм много убеден в моето и доколко е идеално. Пробвах и някакви измислени от мен входове и уж работи при всички.
Това, което не ми харесва е този ред в кода ми е този ред:
39. if (isalpha(text[i]) || text[i] == '+' || text[i] == char(39)) {
Пробвах да го напиша и така:
39. if ((isalpha(text[i]) || !ispunct(text[i]) || text[i] == '+') && text[i] != ' ')
Но по двата начина ми се струва доста "нагласен" според случая(входа).
Отделно swapWords() фунцкията е доста сложна, но не измислих как лесно да я разхвърлям по фунцкии без те да приемат по 3-4 параметара, и за това я опростих максимално и я оставих така.
Сега като я загледах можеше броячите frontPos и backPos да прескачат по две позиции и да отпаднат повечето проверки. :?
Поздрави,
Илиян Павлов