Open In App

JavaScript Program Count number of Equal Pairs in a String

Last Updated : 18 Jul, 2024
Comments
Improve
Suggest changes
Like Article
Like
Report

In this article, we are going to learn how can we count a number of equal pairs in a string. Counting equal pairs in a string involves finding and counting pairs of consecutive characters that are the same. This task can be useful in various applications, including pattern recognition and data analysis.

Examples:

Input: 'pqr'
Output: 3
Explanation:
3 pairs that are equal are (p, p), (q, q) and (r, r)
Input: 'HelloWorld'
Output: 18

Naive Approach

The straightforward method involves using two nested loops to iterate through the string, identifying all pairs, and maintaining a count of these pairs.

Example:


Output
31

Time Complexity: O(n2), n is the length of input string

Space Complexity: O(1)

Efficient Appraoch

  • In this approach, We must efficiently determine the count of distinct pairs of characters in linear time.
  • Notably, pairs like (x, y) and (y, x) are treated as distinct.
  • To accomplish this, we employ a hash table to record the occurrences of each character. If a character appears twice, it corresponds to 4 pairs: (i, i), (j, j), (i, j), and (j, i).
  • By utilizing a hashing mechanism, we keep track of the frequency of each character, and for each character, the count of pairs will be the square of its frequency.
  • The hash table will have a length of 256 since there are 256 distinct characters.

Example: This example shows the use of the above-explined approach.


Output
3

Time Complexity: O(n), n is the length of input string

Space Complexity: O(1)

Using Combinatorial Counting

Another efficient approach to count the number of equal pairs in a string is by using combinatorial counting principles. This approach leverages the fact that the number of ways to choose 2 items from n items (where order does not matter) is given by the combination formula C(n, 2) = n * (n - 1) / 2.

Example:


Output
4

Next Article

Similar Reads