Mark As Completed Discussion

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

String Algorithms

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.

JAVASCRIPT
OUTPUT
:001 > Cmd/Ctrl-Enter to run, Cmd/Ctrl-/ to comment