Strings are fundamental data structures in programming, and many algorithms exist for manipulating and analyzing strings.

A palindrome is a string that reads the same backwards and forwards. Here is how to check for palindromes:
1function isPalindrome(str) {
2 const reversed = str.split('').reverse().join('');
3 return str === reversed;
4}Two strings are anagrams if they contain the same characters in different orders. To check:
1function isAnagram(str1, str2) {
2 return str1.split('').sort().join('') ===
3 str2.split('').sort().join('');
4}To find the longest common substring between two strings:
1function longestCommonSubstring(str1, str2) {
2 const lengths = Array.from({ length: str1.length + 1 }, () => Array(str2.length + 1).fill(0));
3 let longest = 0;
4 let longestIdx = 0;
5 for (let i = 1; i <= str1.length; i++) {
6 for (let j = 1; j <= str2.length; j++) {
7 if (str1.charAt(i - 1) === str2.charAt(j - 1)) {
8 lengths[i][j] = lengths[i - 1][j - 1] + 1;
9 if (lengths[i][j] > longest) {
10 longest = lengths[i][j];
11 longestIdx = i - 1;
12 }
13 }
14 }
15 }
16 return str1.substring(longestIdx - longest + 1, longestIdx + 1);
17}To reverse a string:
1function reverseString(str) {
2 return str.split('').reverse().join('');
3}This covers some common string algorithms like palindromes, anagrams, longest common substring, and reversal. Strings are core to many domain-specific algorithms as well.
xxxxxxxxxx37
console.log(reverseString("hello")); // "olleh"function isPalindrome(str) { const reversed = str.split('').reverse().join(''); return str === reversed;}​function isAnagram(str1, str2) { return str1.split('').sort().join('') === str2.split('').sort().join(''); }​function longestCommonSubstring(str1, str2) { const lengths = Array.from({ length: str1.length + 1 }, () => Array(str2.length + 1).fill(0)); let longest = 0; let longestIdx = 0; for (let i = 1; i <= str1.length; i++) { for (let j = 1; j <= str2.length; j++) { if (str1.charAt(i - 1) === str2.charAt(j - 1)) { lengths[i][j] = lengths[i - 1][j - 1] + 1; if (lengths[i][j] > longest) { longest = lengths[i][j]; longestIdx = i - 1; } } } } return str1.substring(longestIdx - longest + 1, longestIdx + 1);}​function reverseString(str) {OUTPUT
:001 > Cmd/Ctrl-Enter to run, Cmd/Ctrl-/ to comment

