Այլ մարդկանց կողմից առաջարկված լուծումներ (մաս 1) 
Tags: javascript, algorithms
Published: 2021-11-29 15:58:57

## Բարև սիրելի ծրագրավորող

Նախորդ 2 փոստերում մենք քննարկեցինք [տառերի զանգվածի միջից դուպլիկատները հեռացնելու](https://dev.to/arsenmazmanyan1104/zangvatsits-dowplikatner-herhatsnelow-algoritmner-1gpk) և [բառի պոլինդրոմությունը ստուգելու](https://dev.to/arsenmazmanyan1104/polindrom-palindrome-barher-3d48) խնդիրները և դրանց լուծման մի քանի տարբերակ։

Ի ուրախություն ինձ, ինչու չէ նաև քեզ, որոշ մարդիկ այս նյութերը կարդալուց հետո իմ հետ կիսվեցին այս խնդիրները լուծելու իրենց նոր, հետաքրքիր տարբերակներով, որոնցով ես պատրաստվում եմ կիսվել քո հետ։

Սկզբից նայենք տառերի զանգվածի միջից դուպլիկատները հեռացնելու խնդրի նոր լուծումները։ Խնդրի հետ ավելի մանրամասն ծանոթանալու համար կարող ես անցնել [այս հղմամբ](https://dev.to/arsenmazmanyan1104/zangvatsits-dowplikatner-herhatsnelow-algoritmner-1gpk)։ 

---

**Այս տարբերակը LinkedIn-ով ինձ առաջարկել է [Սահակը](https://www.linkedin.com/in/sahak-k-631300123)**:

![code javascript algorithm](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mqavy9mnh7ekkjcfclti.png)
 
[Կոդը կարող ես փորձարկել այստեղ](https://codepen.io/b11rdman/pen/KKXKdrd):

Լուծման այս տարբերակը հիմնված է JavaScrip-ի օբյեկտի՝ եզակի key֊եր պահելու վրա։ Զանգվածի էլեմենտներով `obj` օբյեկտի key֊եր ենք սարքում։ Այնուհետև վերադարձնում ենք `obj`֊ի key֊երը զանգվածի տեսքով և խնդիրը լուծված է։

Իհարկե  գաղափարին հետևող այլ լուծումներ էլ կարող եք ստանալ։ Ես և Սահակը արել ենք այդ։ Կցանկանամ, որ նաև դուք մտածեք այդ ուղղությամբ և ինքներդ այլ լուծումներ գտնեք։

Նա նաև առաջարկեց Go լեզվով մեկ այլ լուծում, որը ունի այսպիսի տեսք։

![code go algorithm](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hfudrm4kf5j02ab77qwe.png)

---

**Մյուս տարբերակը ինձ առաջարկել է [JavaScript Armenia](https://t.me/javascriptarmenia) Տելեգրամ չատի օգտատեր Կարոն**։

![code javascript algorithm](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xg5hqeg5fhbl3ad10u5k.png)
 
[Կոդը կարող ես փորձարկել այստեղ](https://codepen.io/b11rdman/pen/LYzYGGB):

Լուծման այս եղանակը հիմնված է ES6 ստանդարտով մեզ ներկայացած ֆունկցիաների վրա։ Այս դեպքում զանգվածը ֆիլտրում ենք և պահում ենք միայն այն էլեմենտները, որոնց ինդեքսը հավասար է այդ զանգվածում իրեն հավար էլեմենտի վերջին ինդեքսին։ Այսինք էլեմենտը մնում է միայն այն դեպքում, երբ այն միակն է զանգվածում։

---

Անցնենք առաջ և դիտարկենք պոլինդրոմ բառերի խնդրի համար առաջարկված նոր լուծումները։ Այս խնդրի հետ ավելի մանրամասն ծանոթանալու համար կարող ես անցնել [այս հղմամբ](https://dev.to/arsenmazmanyan1104/polindrom-palindrome-barher-3d48)։ 

**Այս խնդրի լուծումներից մեկը ինձ LinkedIn֊ով առաջարկել է [Գուրգենը](https://www.linkedin.com/in/gurgen-alaverdyan-9732321a8)**: 

![code javascript algorithm](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g5q6ycukold2irpg8l3y.png)
 
[Կոդը կարող ես փորձարկել այստեղ](https://codepen.io/b11rdman/pen/LYzYGGB):

Խնդրի լուծման այս տարբերակում պահում ենք 2 ինդեքս, որոնցից մեկը աջ կողմից ստուգվող էլեմենտի ինդեքսն է, մյուսը ձախ կողմից ստուգվողի ինդեքսը։ Ամեն անգամ, տառերի համեմատությունից հետո, եթե նրանք հավասար են, ինդեքսները 1ով ավելացնում ենք, քանի դեռ ձախ ինդեքսը փոքր է աջի ինդեքսից։ Իսկ եթե տառերը նույնը չեն, վերադարձնում ենք `false`։

---

**Մեկ այլ լուծում առաջարկել է [Հայկական ՏՏ համայնք](https://t.me/ArmenianITCommunity) Տելեգրամ չատի օգտատեր Հասմիկը**։

![code javascript algorithm](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hq98ks25k8tulepy7phd.png)

[Կոդը կարող ես փորձարկել այստեղ](https://codepen.io/b11rdman/pen/KKXKpPQ):

Այս Եղանակով մենք նախ բառը դարձնում ենք փոքրատառ, հետո պահում ենք այն նաև շրջած տեսքով։ Եթե բառը հավասար է իր շրջած արժեքին, ուրեմն այն պոլինդրոմ է։ Հակառակ դեպքում ոչ։ 

---

Եվս մեկ անգամ կցանկանամ շնորհակալություն հայտնել նրանց՝ իրենց լուծման տարբերակներով կիսվելու համար։

Հույս ունեմ, այս նյութը քեզ օգնեց նոր գաղափարներ և նոր գիտելիք ստանալու հարցում։
Իսկ եթե ունես մեկ այլ լուծման եղանակ, շատ ուրախ կլինեմ, [եթե քո տարբերակը ուղարկես ինձ](https://t.me/Beardman1104), այդպիսով փորձի փոխանակում կանենք։