Open In App

JavaScript Program to Check for Repeated Characters in a String

Last Updated : 10 Oct, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

In this article, we are going to see various methods with which you can detect repeated characters in a string. Checking for repeated characters in a string involves examining the string’s content to identify if any character occurs more than once. This helps detect duplications or repetitions within the text.

Input: Str = “geeksforgeeks”
Output:
e, count = 4
g, count = 2
k, count = 2
s, count = 2
Explanation: e,g,k,and s are characters which are occured in string in more than one times.

There are several methods that can be used to Check for repeated characters in a string JavaScript.

We will explore all the above methods along with their basic implementation with the help of examples.

Approach 1: Using sort() method with for…of loop

In this approach,we utilize the sort() method to alphabetically sort the characters of our inputStr. Then, we employ a for…of loop to iterate through the sorted string, identifying and gathering duplicate characters while ensuring they are not duplicated within an array.

Syntax:

array.sort()

Example: In this example we are using the above-explained approach.

Javascript




const inputStr = "GeeksforGeeks";
const sortedStr = inputStr.split('').sort().join('');
  
let duplicates = [];
let prevChar = sortedStr[0];
  
for (const char of sortedStr.slice(1)) {
    if (char === prevChar
        && !duplicates.includes(char)) {
        duplicates.push(char);
    }
    prevChar = char;
}
  
if (duplicates.length > 0) {
    console.log(`The duplicate characters : ${duplicates.join(', ')}`);
} else {
    console.log(`The string "${inputStr}" has no duplicate characters.`);
};


Output

The duplicate characters : G, e, k, s

Approach 2: Using a Set in JavaScript

In this approach we use a Set to efficiently find and store duplicate characters in a given string. It iterates through the string, adding each character to the Set if it’s not already present, and adds it to the ‘duplicates’ array if it’s encountered again.

Syntax:

new Set([it]);

Example: In this example we are using above explained apporach.

Javascript




const str = "GeeksforGeeks";
const cSet = new Set();
const duplicates = [];
  
for (let i = 0; i < str.length; i++) {
    const char = str[i];
  
    if (cSet.has(char)) {
        if (!duplicates.includes(char)) {
            duplicates.push(char);
        }
    } else {
        cSet.add(char);
    }
}
  
if (duplicates.length > 0) {
    console.log(
`The String ${str} has duplicate characters: ${duplicates.join(", ")}`);
} else {
    console.log(`The String ${str} has all unique characters`);
};


Output

The String GeeksforGeeks has duplicate characters: e, G, k, s

Approach 3: Without using Extra Data Structure

In this approach, we are using bit manipulation to find the check for repeated characters in a string. we use a bit vector (checker) to efficiently find and collect duplicate characters in a string. It iterates through the string, tracking character occurrences with bitwise operations and stores duplicates in an array

Syntax:

if ((checker & (1 << bitAtIndex)) > 0) {
if (!duplicates.includes(str[i])) {
duplicates.push(str[i]);
}
} else {
checker |= (1 << bitAtIndex);
};

Example: In this example we are using above-explained apporach.

Javascript




function findDuplicateChar(str) {
    let checker = 0;
    const duplicates = [];
  
    for (let i = 0; i < str.length; i++) {
        const bitAtIndex =
            str.charCodeAt(i) - 'a'.charCodeAt(0);
  
        if ((checker & (1 << bitAtIndex)) > 0) {
            if (!duplicates.includes(str[i])) {
                duplicates.push(str[i]);
            }
        } else {
            checker |= (1 << bitAtIndex);
        }
    }
  
    return duplicates;
}
  
const str = "GeeksforGeeks";
const duplicateCharacters = findDuplicateChar(str);
  
if (duplicateCharacters.length > 0) {
    console.log(
        "The String ${str} has duplicate characters:",
            duplicateCharacters.join(", "));
} else {
    console.log(
`The String ${str} has all unique characters`);
};


Output

The String ${str} has duplicate characters: e, G, k, s


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads