From 062f75e2f1b5bec506790cca89555cc0c873280b Mon Sep 17 00:00:00 2001 From: Dmitry Date: Thu, 3 Feb 2022 12:03:56 +0700 Subject: [PATCH] added advanced algorithm for palindrome --- .../7.1/executionHistory/executionHistory.bin | Bin 2020955 -> 2020955 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/7.1/fileHashes/fileHashes.bin | Bin 91815 -> 92115 bytes .gradle/7.1/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes src/main/kotlin/other/PalindromeAdvanced.kt | 34 +++++++++++++++ .../kotlin/other/PalindromeAdvancedTest.kt | 40 ++++++++++++++++++ src/test/kotlin/other/PalindromeTest.kt | 13 ++++++ 8 files changed, 87 insertions(+) create mode 100644 src/main/kotlin/other/PalindromeAdvanced.kt create mode 100644 src/test/kotlin/other/PalindromeAdvancedTest.kt diff --git a/.gradle/7.1/executionHistory/executionHistory.bin b/.gradle/7.1/executionHistory/executionHistory.bin index 58ac8063709fe3fe98cf3879952780e9fbf465a2..3d1e8c60a55f6ca16bf9f0be95c8a3568743d979 100644 GIT binary patch delta 7275 zcmc&(cT`hZx936vQqoDe7YMyWLTD-?hz-S2Kp86tAp``eAt0hOVFX1ff*es4?1CUT zI>v^II#^&t$1XU61+XAEIwFq3yU7WT-}udY|Gf9Ttaa8p>;8VboU`{nXW!iR+Ewkf zt1@$t9Mv4P96}B;M?FU)XH1S}j@D7_+F#8*S8aGg`;R? z^m55c75HPwZv3jvBp}N`al5K#$?&NGnbAXz)BqghaD7TD2cl(@-fQ1RsJ18F^lmo{ zO#7jA3+s4uSCp*q6UUPPE^BH|0)Au1P{(_PB@1Ik;xL{lT9}xqMm0FTzwQ8HZfG&w zaLVnLWe8FkCtW6%@co3*k+ETtxEQfg0wjFKyg`Gy0VX^1NqZxMI))tkhiT9X=Raao z+_C~q`ea7Enx=?hNkAPv*q|bO{`yj(%l88n^#!;3U-HX-RVN@SDxP^I$c1^inRFd| zknlmq2L&Hge9-Vg#|J}}N!LwoH4hE{ANNJ|5Gc-~d?zc)qMRnn{1S*dR)`}o9wtl& z4ja{VWNTQ=JPrEc`>axvT@x+!H{G8WR4gk*wt?bL9FEMH%dAoZM~l^6!9X8T9aI@J zwZ?wgpyg6E>WW#jdwrRvdM@=-3W|iMyOD~2*qt!h4P)j*ZR&@#hMx61T3Ws{Xqhsz z*}en_&*@f!IZe7WKsu;FmF4l6b2L>q-U9c=GB{g~fS_hU8XSc!NLby<}!uDUvFNfvMoF@%+WP+d5mjRsAFh&N?64537) zVS=hGeo*%;7jXuMIi%@;+D|5f*(_3??7N9*w>sVXp}1=3RQVFq=)T5-mwb*OmGZ=4 zgR@O2Q5G^4?NkGidL&oi@Sdy=iU!GA6GpQqK%6M$$uo#U*8~;&-g>^8X0Q3k=f`lQ z>Yp+QcyLMcsf|x&*J(M=Jgk56(wU4kZcehw8R#Pt)w9}SvbU%CNQ+h3+iV{5H+f!J zgDM8OmUyWePa5E_OSV!@({;%lP`3c3s^Jhgw*a-!QgHZ(SV$?za?xUdmftCKCEH^M z$yu!hC;Bf$tre5Bg{Tb?e}ZehzJp{0S{LG~)0W`cD%2F5TCB8kZL!kI=f$Xt zk~E?L;#Z?A;I{;&YC*X{ZM=-T;&d=@jesu(`kR%mWda&;lETXMC8&jBGK5biL9rq# zvi;kNQiMx!BC1eJ?*~}vWT#Bl^xb-*KUFwi;Xi+~4oDzUI2bo&W$V4PiUt*xxmSoHEvA8PE^BmYx?c9)^aRz*b0>4v$u{s3jY_Magl6`ooa_2ioCzN2+ zK_NCd81+*wq8=mjl~aEnNe>KTfO(&N?a)=!c+mg|r|9by9j*4R&Us zdcZ-C3_UClL9LYjY$O50KB~P^x9<}gG|dw#vuO!FQ3n4N2@n3j3X};ARST7d&Ir*7 z#xU7|A-_H`3qYm^F=#xN$rItFFWUZy;@h``tvIF^hy&=2* z@r3kGqlHudUV*Y38yRk@;M5Ww8R%b02cY!|+6XdJwEbmk528dJinnN9IY`L{P^iYD>y z=XU%Y-+31?^Lp}Q2i~V3$OefxF)3P_$P0~(RiSc?JDF<-9^D%(?FmWu*7y#xw)o?9 znDS#=TmFH?E!sxSj-C;w&LIAnjuhDmwok+K!SH*QI(9`gi}FzH;dChay>|_%w&SJ3 zL^%Z~84t2d=CX%PWX-LV!YhvR(k{GWB}05G4cQ(hPQ;Tr7>}e>EQw9zO^J(%5ypn` zmPuoxRj3O_67qDkT+~?&220zty#1hD7ZuqJLIzo8n92407tQWj`MQaZVg!?e^dMeI zLF&NHK^6}?a=-b(k&*Cg0Wa@=+IOTQ4C0Lxqzb$mWEo?A8e%E3iW!LAA6-{9aQDW{jG&h%RzF|Sl$z`I9eW%#Z$|H8 zsO2yP_cF^G6d>9 z*mvuT{La5`@%+fdNc^Nw+?sF!lPg@7eKKAqPPHHE*}cW-Ih5T-1^sQ>DCal7u7x+d z0-K^c@@~$0T)YpWHz^>`7&F773S4$P?TNhZ^H^)*llvfA*nUa-pJ^sjK2^Hd(X*iDj$U}V72DEHly(ZyC$63aUpQ-5w zQTl7h+Dt)8q2+lA66seqU5}%JYi_HL>#%R9F*g776w-UiU+61@@n6yRy(#q`a6gu< z@8w&1ppN?v(ofNleThIg>r1})KN(nA+NayUdQOI^j1qhl(hBH!hqCb#i;ESk_ycRR zF?s#)t?NA6jFb5gzs11u>yK$1(D?}u@S3qs?MVyG{rnC)TyZR3umF;VsK_2r%fk$n zsi{MDH62uWmQ*X-e{QTz)Bt1+(~%0$&%@YCmgj@^7K3czw%D1g);zV1uYjxD>WzN$O%?A0N|hCW>#78S zvoQ>K4&z(UWgVRP6Sr;X)Xp7y978&ls@~G^kZ+%jA5EEZ(o?DV+Nk=TUa@ZQimbEU z8=$=w22L8$W^_ zPjhVoqJ-`=&i<=`yCA-aioYgmS#lVgkCJMBY$-_nEc1<8=DZ!ER~d4Y4f;n|RBY`J z{e81n=5J}g z_`w9T0Ix3+*ck!c`U4#^kF>k9U))O7Vj4s3myMBpSj({D_kR$5{2Zsi8gj67sk3lO zVeIRLq--_hFeIg0VFt{#ONnKNJp8vf&?0@FdJs2lXKga%{xX8x4%tK zofP;CLj6{lEi>r4-t4F6c-&=|1{^1A^7cW9Z;d%&CO2nrr{>>myTaQx;mwR^!_aD> z+Nf*iKCsB3(i$UT+GDalUHtH}wbTF9V06PXB4pzJ?SuYxcw=--*Ls4uGsvUcG1IMk z{jsPbNXk;GV*w9!Hl1VUZ29M`D39`a!ETYqCi@kSY66}%m^JgHpv~8Of!+k`!aes7 zFse8T6r|Z;wrq>F&THzUpDaq*<<^DXjz10syTMr-jLX?psIB?Q9x7SZ&-e{fkr0|8!nBwE9^U z*$b`WO^N;-MIP;I-Mq5;&0I8QtT)$QgmyvZQ#AxAn6S2I3sV&Lu0rCDspZL&yJ!PkSP=W+x-&gAXYB>JoHBg~l3KG5A)~y`b4>iuvbd1Gdl1U7$GEczL6a}!U2F>a zt@hrzw{uDsLDkPxku6_&K5w)GQTS>#uD!tE5K>-mfBW6^^M9m5kt+nG2Jm@!RTpWp z8SJrJ4!cjuX^2BNlnib%Qh^KDEj?ol*x^9@EU& zm&;G(tYdCn|Hu?o39D(I2Sty9Jv_{gt)2epT9xh8M{PP6Pnc>E#1Je5Jv_|JP?}vg z-Jr0ncB|O(%H9gLvSzx7$Zoh#c%Na&UM}if+v@v$`?SJwV?>R{K~TdR5W>ey*>|`z z8Fv>=pFioS)3r2W`~U>o!B!kJJg@SIK86{VlvUl(eJwXA5`qtiNF`K{w-$Qr_2CQm z#kBh++_?R!w!zBZWK;v$0khum+FhjZgK<1Kk(10vw}{6xj1B)yCk1~>+(3O6g7ip zZSL8hp`hM4thgBW7nf#;>en{X=wJljWtN`x8RPLGY3~ascjJ5sA$N!6Y_?BMq~3 z<#IJNG@T?fKN>}ify`1O@OnsRfQKYDl|#{peYY#O{(fxDcl#!2zL!DDR)U;j%3N6F z+~bu*u8gP`2j4!o+E;-BZ6}N`IJWFfHPyXj{>LTFRyw7}hoIn9b^Kl|I~1w1xBAK- zo~!#>7hT+qmzIi3L$d6RCE<`NSTz-k%>C?z;X@A}`m)bn1`p;NR3H6szR$?IexvV4 zkOGOZIl+QB^u3J0}mpiz%|^xOYGvh=yh>VJKmJe}ce-2V1>ki-jgLgi z5-zB1K}teS#{<3*Bj}5}cmB;^Gyf;9Ezk$SQ*=B)2&(4$%^xs85X8vfZrDOQ?{?eR eBaEJ%yEs0_Xq)20+ON~)p{j0@6;I|~E%`4>p}1!N delta 4859 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 delta 5575 zcmai22{=^i8=o_SnGvB=nMOjAwY1#ZB3n1>WTK(6WXV?kL`qT7BxGC(oj5L0Zb`OE zQ&h4iA>G_|MI@Co{{hnveVb1&ez03E0@B5y)|CeNLv*g8J7|>h( zuZ&@7zJOUeJOzOFjpLh4y&stuJ{HCAEp>!hP2d7hus?&Crx z0vRYL2GL#XM0rUzM`G9N8@-$MMhGS`zzVI=&7f0q3|8Mln{JOw&Nh^i;s|~n0 z7$aD8Rd5kuR=unDU~Oxf$;aZUCnHn!tc1*sW0*XNMDE~UVcSC>7S_lVTN{?)(CT{n zjpYex~+g#poS##P#oEL z$)LZ~n`eaXW~|wu&P66a$m;0zPs8TM^J=5ky}L(hytfb5Xx!} zlchN?uK&sB;%T=|$vGB#^uRb+NeHI@MBVbIa~`SE&&^%X?qp+m$K%_$dm8q20@_}C zCI>Q1Z}7ft>KlD+xF#_x7>~htZvBLoRAq6Zf|1te`Q^lB$f#|Bs26-EhaM~g%n|dA z`cuGNXrVL(&DMipN*ebAQxKzLO(G%UKQ*4h3veCKoSwl(i7n#cV$*~H|0rTc5fn;tK^*5Q*F@j3`( z-o!IR+bK@Br!sGI>2%-L?Q&tyrA;J324INsOkac)Y}&&u{P4+W*D0C7XzJIgT4{0y zm{5L;(umM!GFC=Jtd!7wxPAY_IQJt18|;1`2=K%Z<>OJ3xF?Q~+8cFQ#ajLuWV0+~ z+vnP9p$^r*faG%Up<-uGM9H)LUGr-!s@ne0I5DT+)HYL~$Ff=lxIMv`v5wEa)*B%!Xk8Y^O8A&8&6S2j>CbOxkoHBBIlxAzL8cjS2dWfERBX{?!9@fi9}{+6uIsVmJ>`Kzm-sV*fB=D?2k4b30tt4p79>`= z3zI9~`!LtC^^aki+1pXa7;T~`66!#dMAeaazS4*0N7ygio%YL|_?e)TOxjS6IKtp= zTa~v=u7;EC!ldE$?DPpPNdjqFGg8chRqh1$HME-!FGaT|Q5=G;wr7jo&o>{w<}#S^?BHW5Xm9J%Hi zFQB({vtj*Fny!6$*~x{WhONFC)7i8YR(hz6xmVlX3ROAhT>ONiCLRCznXdVZUm zHWW0z;Sy!y(7U(gZdQga`hH7OxuMr@MKlJzvi=K}lVByjUz?nu#&MCOA!YcUzRnc+l21#ttp~^ON<-!rci|h)q*Md+i`5WBr_cJ{O-DNjd3t(l>7zmJ#wc zj`3Z*EFjhQ8G6*R$ndW2rV@MBgJD6H$RBPm5ZFheHY3#$F#mzKJbglIV1kDte#YK2 zu3tA4;&xH3um<70zcAT&>2h%d^NNgfVa3+)8^`jyx<_69AcCC?ax9SQAR$%D5hkKmfP8h~d-c<=1jeGpFgfzQ$Q0vm+bH>%1 ztGFg|i?v0RokEH?!ipX2j?j{M@fp<*)-?IC!Qdq<0;sJuaG_;)o4~K)J^DXXNg9e< zSra~QxqjREw~LUhM{_h{l5kaWKoTr!I?{O%R*W0y}g7d{KsJv z>7|Z~)AO=hN~D6@k6!LmS#s^wcAf}*Cfd0Kf)&$0GjqCE)CO5Rua9Fy9ve4*>%M;B zgy#~@ROOs4-1C+9zX8;;tA1_u$SquoC}?-EPNO(4>&;&`XzlM=0a@F37l3ENm?M?p zTR;wjLX54c=fFkeAQc9dX?5GK+3Hk9Nw#b}z{c5?kc4n1gY7(^lU8!^^@{+?_SX9W z-v|Q{C08br9Z?{x2nU!PkC6=#@={3+@0k^(rOlf_4-+IIVWXM2-V{b1ds=61Jg@0Z z=Nxmr62fB4PB7&@K*|mXYx;gJlk?2g>3;7v=6(8cd+yy!Mh-YV-ifHs0Yb#B$Pu#9 zvsP>0Ic#me=}V0ZC(}cGng^Wq_1Uyy%N-E>rKSg1Wt@L6cpgrivqW zI8(>q`Fw?$4_juf_MxMMPGRC}L}Jq}u28Z<96l3@YIeJ|BF!uJouggU-glsfr`Z?t@I=#D%34hK_1a%y`` z9mDo#>*31q{GeSHN5C7lILEdgovZqwyRvadS{0!TNP;DZ<7D3?4;O(^7|(R659neK z2)14k*mc}=zq+Y)n!!_p;kme4e4?lM0H#SKYVy_}rM?uI94&hBPjnMccORI6@q;ug zRyfgj#xgmF!sXs7olKCO)pg_EYTj(ny9A*lXkEo=<$vSvGxXCroKeVmC3#+_h@i!M z0p2k9Y#y5|I8B+qGdY0=yb}UarM^c7#w?A98U&N`#M4B>q9$UtRyg_QcVClT!EIb^79@A{;`idCUVwt5$Z{YUP5ujYCLjjrVKQ^;>W9mtOU}( z8%8giL(?&<(C_9D6YVyKu%0CNPcRIi`WBF&bD>+nA3u7fZJH8}0&Sv<<%Y1dx#p+WN2>~Bh+=R||Ar3k`*GG<|w>oF-TLn{Iep@c~ z#s(HG73n_;t288+S&g>#Z2ZTdKD(xnju|(UXr(iEeJRf%uJw4Bn?;jhy9xy<*sx*e@W;cc`G9)dqV3J zMg(wuoKP$)#aWkNp* zZ+Aq?6}KnUDSwZi(a3$f?ce`KRQhf{zrG-!zucky`Mq+B-zOS^c;(DwaI+uz*$v)y z`L;K6&{ZoFlqt;8#xaC_j>(E1o^5Nja!paK#U3Z!Rm%pkhhRHFJ;xTA1ui0iW+#|% z)*bZIquaS{dK!iD34K^p7^kU)>Exnl`+dIeP6UxyQiLv4VJ#TXn>r4wu;kWLK25*$ zDu@*a+KSK;R89vxRmtjV>W%bxd|_v)&ykgCpiK!Qin!-68Lu*wez|(@hNq8FlEuMg z#dsTT97A*0LI~DaN{wtFWeWBe>S_xySq2_%uCw|`%87~3Kdvuw>kzQTJA&C8TeR8W zBH|c{5kBMY9%|f0Kgn+~iJBl|fc|*L*QM3AP!B9%F7g6r=0G8tr)6=0`_+_4y`b(}kS z(+9)K0ybp4@2nK^I(-!)rg@^WzL4gW@n1IK8%T>2tTHRr;)}1%&AYv^+EYhIN`-2O o9~tQWXv;|1OPFd1eyQ< literal 17 VcmZSPsQj~0+2HO<1~5>W0{}701j_&b diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 308155d40dfaef74e157fd2849ad40a7cbee135c..552869ffde282acddfb5a6a7c538c002d5aae1b3 100644 GIT binary patch literal 17 VcmZRM5d3-L!sbn<7{Gx0GXOu~20H)% literal 17 VcmZRM5d3-L!sbn<7{Gx0FaSTX1`7ZH diff --git a/src/main/kotlin/other/PalindromeAdvanced.kt b/src/main/kotlin/other/PalindromeAdvanced.kt new file mode 100644 index 0000000..7a72ee5 --- /dev/null +++ b/src/main/kotlin/other/PalindromeAdvanced.kt @@ -0,0 +1,34 @@ +package other + +/** + * Algorithm for checking a string for a palindrome + * + */ + +class PalindromeAdvanced(private val text: String) { + + /** + * checks a string for a palindrome + * + * @return returns true if the string is a palindrome + */ + fun isYes() : Boolean { + if (text.length <= 1) { + return true + } + for (i in 0 until text.length / 2) { + if (text[i] != text[text.length - 1 - i]) { + return false + } + } + return true + } + + /** + * checks if a string is not a palindrome + * + * @return returns true if the string is not a palindrome + */ + fun isNot() = !isYes() + +} \ No newline at end of file diff --git a/src/test/kotlin/other/PalindromeAdvancedTest.kt b/src/test/kotlin/other/PalindromeAdvancedTest.kt new file mode 100644 index 0000000..5181be1 --- /dev/null +++ b/src/test/kotlin/other/PalindromeAdvancedTest.kt @@ -0,0 +1,40 @@ +package other + +import org.junit.Test +import org.junit.jupiter.api.Assertions.* + +class PalindromeAdvancedTest { + + @Test + fun test_empty_string() { + val text1 = "" + assertEquals(PalindromeAdvanced(text1).isYes(), true) + } + + @Test + fun test_one_length() { + val text1 = "a" + assertEquals(PalindromeAdvanced(text1).isYes(), true) + } + + @Test + fun test_is_palindrome() { + val text1 = "tenet" + assertEquals(PalindromeAdvanced(text1).isYes(), true) + + val text2 = "friend" + assertEquals(PalindromeAdvanced(text2).isYes(), false) + } + + @Test + fun test_is_not_palindrome() { + val text1 = "white" + assertEquals(PalindromeAdvanced(text1).isNot(), true) + + val text2 = "tenet" + assertEquals(PalindromeAdvanced(text2).isNot(), false) + } + +} + + diff --git a/src/test/kotlin/other/PalindromeTest.kt b/src/test/kotlin/other/PalindromeTest.kt index ad692a2..e89c85c 100644 --- a/src/test/kotlin/other/PalindromeTest.kt +++ b/src/test/kotlin/other/PalindromeTest.kt @@ -1,10 +1,23 @@ package other import org.junit.Test +import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Assertions.* internal class PalindromeTest { + @Test + fun test_empty_string() { + val text1 = "" + assertEquals(Palindrome(text1).isYes(), true) + } + + @Test + fun test_one_length() { + val text1 = "a" + assertEquals(Palindrome(text1).isYes(), true) + } + @Test fun test_is_palindrome() { val text1 = "tenet"