File tree 6 files changed +48
-41
lines changed
6 files changed +48
-41
lines changed Original file line number Diff line number Diff line change @@ -102,7 +102,7 @@ a set of rules that precisely define a sequence of operations.
102
102
* ` A ` [ Combination Sum] ( src/algorithms/sets/combination-sum ) - find all combinations that form specific sum
103
103
* ** Strings**
104
104
* ` B ` [ Hamming Distance] ( src/algorithms/string/hamming-distance ) - number of positions at which the symbols are different
105
- * ` B ` [ Palindrome Check ] ( src/algorithms/string/palindrome-check ) - is the string the same in reverse
105
+ * ` B ` [ Palindrome] ( src/algorithms/string/palindrome ) - check if the string is the same in reverse
106
106
* ` A ` [ Levenshtein Distance] ( src/algorithms/string/levenshtein-distance ) - minimum edit distance between two sequences
107
107
* ` A ` [ Knuth–Morris–Pratt Algorithm] ( src/algorithms/string/knuth-morris-pratt ) (KMP Algorithm) - substring search (pattern matching)
108
108
* ` A ` [ Z Algorithm] ( src/algorithms/string/z-algorithm ) - substring search (pattern matching)
Load Diff This file was deleted.
Load Diff This file was deleted.
Original file line number Diff line number Diff line change
1
+ # Palindrome Check
2
+
3
+ A [ Palindrome] ( https://en.wikipedia.org/wiki/Palindrome ) is a string that reads the same forwards and backwards.
4
+ This means that the second half of the string is the reverse of the
5
+ first half.
6
+
7
+ ## Examples
8
+
9
+ The following are palindromes (thus would return ` TRUE ` ):
10
+
11
+ ```
12
+ - "a"
13
+ - "pop" -> p + o + p
14
+ - "deed" -> de + ed
15
+ - "kayak" -> ka + y + ak
16
+ - "racecar" -> rac + e + car
17
+ ```
18
+
19
+ The following are NOT palindromes (thus would return ` FALSE ` ):
20
+
21
+ ```
22
+ - "rad"
23
+ - "dodo"
24
+ - "polo"
25
+ ```
26
+
27
+ ## References
28
+
29
+ - [ GeeksForGeeks - Check if a number is Palindrome] ( https://www.geeksforgeeks.org/check-if-a-number-is-palindrome/ )
Original file line number Diff line number Diff line change
1
+ import isPalindrome from '../isPalindrome' ;
2
+
3
+ describe ( 'palindromeCheck' , ( ) => {
4
+ it ( 'should return whether or not the string is a palindrome' , ( ) => {
5
+ expect ( isPalindrome ( 'a' ) ) . toBe ( true ) ;
6
+ expect ( isPalindrome ( 'pop' ) ) . toBe ( true ) ;
7
+ expect ( isPalindrome ( 'deed' ) ) . toBe ( true ) ;
8
+ expect ( isPalindrome ( 'kayak' ) ) . toBe ( true ) ;
9
+ expect ( isPalindrome ( 'racecar' ) ) . toBe ( true ) ;
10
+
11
+ expect ( isPalindrome ( 'rad' ) ) . toBe ( false ) ;
12
+ expect ( isPalindrome ( 'dodo' ) ) . toBe ( false ) ;
13
+ expect ( isPalindrome ( 'polo' ) ) . toBe ( false ) ;
14
+ } ) ;
15
+ } ) ;
Original file line number Diff line number Diff line change 3
3
* @return {boolean }
4
4
*/
5
5
6
- export default function palindromeCheck ( string ) {
6
+ export default function isPalindrome ( string ) {
7
7
let left = 0 ;
8
8
let right = string . length - 1 ;
9
+
9
10
while ( left < right ) {
10
11
if ( string [ left ] !== string [ right ] ) {
11
12
return false ;
12
13
}
13
14
left += 1 ;
14
15
right -= 1 ;
15
16
}
17
+
16
18
return true ;
17
19
}
You can’t perform that action at this time.
0 commit comments