Skip to main content

Print all pairs of anagrams in a given array of strings

Here given code implementation process.

// Include header file
#include <iostream>
#include <string>
#include <algorithm>

using namespace std;
/*
    C++ program for
    Print all pairs of anagrams in a given array of strings
*/
class Anagrams
{
	public: void anagramsPairs(string arr[], int n)
	{
		if (n <= 0)
		{
			return;
		}
		string record[n];
		string word = "";
		// Sort array string and put into record
		for (int i = 0; i < n; ++i)
		{
			word = arr[i];
			// Sort word
			sort(word.begin(), word.end());
			record[i] = word;
		}
		// Display relative pairs of anagrams
		for (int i = 0; i < n; ++i)
		{
			for (int j = i + 1; j < n; ++j)
			{
				if (record[i].compare(record[j]) == 0)
				{
					cout << "(" << arr[i] << "," << arr[j] << ")\n";
				}
			}
		}
	}
};
int main()
{
	Anagrams *task = new Anagrams();
	string arr[] = {
		"mango" , "among" , "retace" , "power" , "create" , "receat"
	};
	// Get the length of array
	int n = sizeof(arr) / sizeof(arr[0]);
	task->anagramsPairs(arr, n);
	return 0;
}

Output

(mango,among)
(retace,create)
(retace,receat)
(create,receat)
import java.util.Arrays;
/*
    Java program for
    Print all pairs of anagrams in a given array of strings
*/
public class Anagrams
{
	public void anagramsPairs(String[] arr, int n)
	{
		if (n <= 0)
		{
			return;
		}
		String[] record = new String[n];
		String auxiliary = "";
		// Sort array string and put into record
		for (int i = 0; i < n; ++i)
		{
			char[] word = arr[i].toCharArray();
			// Sort word
			Arrays.sort(word);
			// Convert into String 
			auxiliary = new String(word);
			record[i] = auxiliary;
		}
		// Display relative pairs of anagrams
		for (int i = 0; i < n; ++i)
		{
			for (int j = i + 1; j < n; ++j)
			{
				if (record[i].equals(record[j]))
				{
					System.out.print("(" + arr[i] + "," + arr[j] + ")\n");
				}
			}
		}
	}
	public static void main(String[] args)
	{
		Anagrams task = new Anagrams();
		String[] arr = {
			"mango" , "among" , "retace" , "power" , "create" , "receat"
		};
		// Get the length of array
		int n = arr.length;
		task.anagramsPairs(arr, n);
	}
}

Output

(mango,among)
(retace,create)
(retace,receat)
(create,receat)
// Include namespace system
using System;
/*
    Csharp program for
    Print all pairs of anagrams in a given array of strings
*/
public class Anagrams
{
	public void anagramsPairs(String[] arr, int n)
	{
		if (n <= 0)
		{
			return;
		}
		String[] record = new String[n];
		String auxiliary = "";
		// Sort array string and put into record
		for (int i = 0; i < n; ++i)
		{
			char[] word = arr[i].ToCharArray();
			// Sort word
			Array.Sort(word);
			// Convert into String 
			auxiliary = new String(word);
			record[i] = auxiliary;
		}
		// Display relative pairs of anagrams
		for (int i = 0; i < n; ++i)
		{
			for (int j = i + 1; j < n; ++j)
			{
				if (record[i].Equals(record[j]))
				{
					Console.Write("(" + arr[i] + "," + arr[j] + ")\n");
				}
			}
		}
	}
	public static void Main(String[] args)
	{
		Anagrams task = new Anagrams();
		String[] arr = {
			"mango" , "among" , "retace" , "power" , "create" , "receat"
		};
		// Get the length of array
		int n = arr.Length;
		task.anagramsPairs(arr, n);
	}
}

Output

(mango,among)
(retace,create)
(retace,receat)
(create,receat)
package main
import "strings"
import "sort"
import "fmt"
/*
    Go program for
    Print all pairs of anagrams in a given array of strings
*/
func anagramsPairs(arr[] string, n int) {
	if n <= 0 {
		return
	}
	var record = make([]string,n);
	var auxiliary string = ""
	// Sort array string and put into record
	for i := 0 ; i < n ; i++ {

		s := strings.Split(arr[i], "")
    	sort.Strings(s)
    	auxiliary = strings.Join(s, "")
		record[i] = auxiliary
	}
	// Display relative pairs of anagrams
	for i := 0 ; i < n ; i++ {
		for j := i + 1 ; j < n ; j++ {
			if record[i] == record[j] {
				fmt.Print("(", arr[i], ",", arr[j], ")\n")
			}
		}
	}
}
func main() {
	
	var arr = [] string {"mango" , "among" , "retace" , "power" , "create" , "receat"}
	// Get the length of array
	var n int = len(arr)
	anagramsPairs(arr, n)
}

Output

(mango,among)
(retace,create)
(retace,receat)
(create,receat)
<?php
/*
    Php program for
    Print all pairs of anagrams in a given array of strings
*/
class Anagrams
{
	public	function anagramsPairs($arr, $n)
	{
		if ($n <= 0)
		{
			return;
		}
		$record = array_fill(0, $n, "");
		$auxiliary = "";
		// Sort array string and put into record
		for ($i = 0; $i < $n; ++$i)
		{
			$word = str_split($arr[$i]);
			// Sort word
			sort($word);
			// Convert into String 
			$auxiliary = implode($word);
			$record[$i] = $auxiliary;
		}
		// Display relative pairs of anagrams
		for ($i = 0; $i < $n; ++$i)
		{
			for ($j = $i + 1; $j < $n; ++$j)
			{
				if ((strcmp($record[$i], $record[$j]) == 0))
				{
					echo("(".$arr[$i].",".$arr[$j].")\n");
				}
			}
		}
	}
}

function main()
{
	$task = new Anagrams();
	$arr = array("mango", "among", "retace", "power", "create", "receat");
	// Get the length of array
	$n = count($arr);
	$task->anagramsPairs($arr, $n);
}
main();

Output

(mango,among)
(retace,create)
(retace,receat)
(create,receat)
/*
    Node JS program for
    Print all pairs of anagrams in a given array of strings
*/
class Anagrams
{
	anagramsPairs(arr, n)
	{
		if (n <= 0)
		{
			return;
		}
		var record = Array(n).fill("");
		var auxiliary = "";
		// Sort array string and put into record
		for (var i = 0; i < n; ++i)
		{
			var word = (arr[i]).split('');
			// Sort word
			word.sort();
			// Convert into String 
			auxiliary = new String(word);
			record[i] = auxiliary;
		}
		// Display relative pairs of anagrams
		for (var i = 0; i < n; ++i)
		{
			for (var j = i + 1; j < n; ++j)
			{
				if ((record[i].localeCompare(record[j]) == 0))
				{
					process.stdout.write("(" + arr[i] + "," + arr[j] + ")\n");
				}
			}
		}
	}
}

function main()
{
	var task = new Anagrams();
	var arr = ["mango", "among", "retace", "power", "create", "receat"];
	// Get the length of array
	var n = arr.length;
	task.anagramsPairs(arr, n);
}
main();

Output

(mango,among)
(retace,create)
(retace,receat)
(create,receat)
#    Python 3 program for
#    Print all pairs of anagrams in a given array of strings
class Anagrams :
	def anagramsPairs(self, arr, n) :
		if (n <= 0) :
			return
		
		record = [""] * (n)
		i = 0
		#  Sort list string and put into record
		while (i < n) :
			word = ''.join(sorted(arr[i]))
			record[i] = word
			i += 1
		
		i = 0
		#  Display relative pairs of anagrams
		while (i < n) :
			j = i + 1
			while (j < n) :
				if (record[i] == record[j]) :
					print("(", arr[i] ,",", arr[j] ,")")
				
				j += 1
			
			i += 1
		
	

def main() :
	task = Anagrams()
	arr = ["mango", "among", "retace", "power", "create", "receat"]
	#  Get the length of list
	n = len(arr)
	task.anagramsPairs(arr, n)

if __name__ == "__main__": main()

Output

( mango , among )
( retace , create )
( retace , receat )
( create , receat )
#    Ruby program for
#    Print all pairs of anagrams in a given array of strings
class Anagrams 
	def anagramsPairs(arr, n) 
		if (n <= 0) 
			return
		end

		record = Array.new(n) {nil}
		auxiliary = ""
		i = 0
		#  Sort array string and put into record
		while (i < n) 
			word = arr[i]
			auxiliary = word.chars.sort(&:casecmp).join
			record[i] = auxiliary
			i += 1
		end

		i = 0
		#  Display relative pairs of anagrams
		while (i < n) 
			j = i + 1
			while (j < n) 
				if (record[i] === record[j]) 
					print("(", arr[i] ,",", arr[j] ,")\n")
				end
				j += 1
			end
			i += 1
		end
	end
end

def main() 
	task = Anagrams.new()
	arr = ["mango", "among", "retace", "power", "create", "receat"]
	#  Get the length of array
	n = arr.length
	task.anagramsPairs(arr, n)
end

main()

Output

(mango,among)
(retace,create)
(retace,receat)
(create,receat)
/*
    Scala program for
    Print all pairs of anagrams in a given array of strings
*/
class Anagrams()
{
	def anagramsPairs(arr: Array[String], n: Int): Unit = {
		if (n <= 0)
		{
			return;
		}
		var record: Array[String] = Array.fill[String](n)("");
		var auxiliary: String = "";
		var i: Int = 0;
		// Sort array string and put into record
		while (i < n)
		{
			var word: Array[Char] = arr(i).toCharArray();
			// Sort word
			word = word.sorted;
			// Convert into String
			auxiliary = new String(word);
			record(i) = auxiliary;
			i += 1;
		}
		i = 0;
		// Display relative pairs of anagrams
		while (i < n)
		{
			var j: Int = i + 1;
			while (j < n)
			{
				if (record(i).equals(record(j)))
				{
					print("(" + arr(i) + "," + arr(j) + ")\n");
				}
				j += 1;
			}
			i += 1;
		}
	}
}
object Main
{
	def main(args: Array[String]): Unit = {
		var task: Anagrams = new Anagrams();
		var arr: Array[String] = Array(
          "mango", "among", "retace", "power", "create", "receat");
		// Get the length of array
		var n: Int = arr.length;
		task.anagramsPairs(arr, n);
	}
}

Output

(mango,among)
(retace,create)
(retace,receat)
(create,receat)
import Foundation;
/*
    Swift 4 program for
    Print all pairs of anagrams in a given array of strings
*/
class Anagrams
{
	func anagramsPairs(_ arr: [String], _ n: Int)
	{
		if (n <= 0)
		{
			return;
		}
		var record: [String] = Array(repeating: "", count: n);
		var auxiliary: String = "";
		var i: Int = 0;
		// Sort array string and put into record
		while (i < n)
		{
			// Convert into String
			auxiliary = String(arr[i].sorted());
			record[i] = auxiliary;
			i += 1;
		}
		i = 0;
		// Display relative pairs of anagrams
		while (i < n)
		{
			var j: Int = i + 1;
			while (j < n)
			{
				if (record[i] == record[j])
				{
					print("(", arr[i] ,",", arr[j] ,")");
				}
				j += 1;
			}
			i += 1;
		}
	}
}
func main()
{
	let task: Anagrams = Anagrams();
	let arr: [String] = [
      "mango", "among", "retace", "power", "create", "receat"];
	// Get the length of array
	let n: Int = arr.count;
	task.anagramsPairs(arr, n);
}
main();

Output

( mango , among )
( retace , create )
( retace , receat )
( create , receat )
/*
    Kotlin program for
    Print all pairs of anagrams in a given array of strings
*/
class Anagrams
{
	fun anagramsPairs(arr: Array < String > , n: Int): Unit
	{
		if (n <= 0)
		{
			return;
		}
		val record: Array < String > = Array(n)
		{
			""
		};
		var auxiliary: String ;
		var i: Int = 0;
		// Sort array string and put into record
		while (i < n)
		{
			var word = arr[i].toCharArray();
          	// Get sorted word
			auxiliary = word.sorted().joinToString("");
			record[i] = auxiliary;
			i += 1;
		}
		i = 0;
		// Display relative pairs of anagrams
		while (i < n)
		{
			var j: Int = i + 1;
			while (j < n)
			{
				if (record[i].equals(record[j]))
				{
					print("(" + arr[i] + "," + arr[j] + ")\n");
				}
				j += 1;
			}
			i += 1;
		}
	}
}
fun main(args: Array < String > ): Unit
{
	val task: Anagrams = Anagrams();
	val arr: Array < String > = arrayOf(
      "mango", "among", "retace", "power", "create", "receat");
	// Get the length of array
	val n: Int = arr.count();
	task.anagramsPairs(arr, n);
}

Output

(mango,among)
(retace,create)
(retace,receat)
(create,receat)




Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment