HackerRank Gemstones problem solution YASH PAL, 31 July 202423 January 2026 HackerRank Gemstones problem solution – In this HackerRank Gemstones problem There is a collection of rocks where each rock has various minerals embeded in it. Each type of mineral is designated by a lowercase letter in the range ascill[a-z]. There may be multiple occurrences of a mineral in a rock. A mineral is called a gemstone if it occurs at least once in each of the rocks in the collection.Given a list of minerals embedded in each of the rocks, display the number of types of gemstones in the collection. Function DescriptionComplete the gemstones function in the editor below.gemstones has the following parameter(s): string arr[n]: an array of stringsReturnsint: the number of gemstones foundInput FormatThe first line consists of an integer n, the size of m.Each of the next n lines contains a string arr[i] where each letter represents an occurence of a mineral in the current rock.HackerRank Gemstones problem solution in Python.import fileinput stones = [] gems = [] for line in fileinput.input(): if fileinput.lineno() == 1: lengths = int(line) else: stones.append(line.strip()) #print(stones) for x in range(0, len(stones[0])): if stones[0][x] not in gems: gems.append(stones[0][x]) for y in range(0, lengths): if stones[0][x] not in stones[y]: #print(x) try : gems.remove(stones[0][x]) except ValueError: continue print(len(gems))Gemstones problem solution in Java.import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { static int gemStones(ArrayList<String> array) { String firstString = array.get(0); // charset with all unique chars HashSet<String> charSet = new HashSet<String>(); for (String c : firstString.split("")) { charSet.add(c); } int total = 0; for (String c : charSet) { Boolean exists = true; for (int i = 1 ; i < array.size() ; i++) { String thisLine = array.get(i); if (!thisLine.contains(c)) { exists = false; } } if (exists) total++; } return total; } public static void main(String[] args) { Scanner in = new Scanner(System.in); int count = in.nextInt(); // escape the n in.nextLine(); ArrayList <String> arrayList = new ArrayList<String>(count); for (int i=0;i<count;i++) { String line = in.nextLine(); arrayList.add(line); } in.close(); int result = gemStones(arrayList); System.out.println(result); } }Problem solution in C++ programming.#include <cmath> #include <ctime> #include <cstdio> #include <cstdlib> #include <cstring> #include <cassert> #include <map> #include <set> #include <queue> #include <stack> #include <string> #include <vector> #include <sstream> #include <iostream> #include <algorithm> #define DB(x) cerr << x << " " #define DBN(x) cerr << #x << "=" << x << endl #define DBL cerr << endl #define sz(c) ((int)(c).size()) #define pb push_back #define mp make_pair #define endl 'n' typedef long long int64; using namespace std; int n; int cnt[26]; int main() { while (scanf("%d", &n) == 1) { memset(cnt, 0, sizeof(cnt)); for (int i = 0; i < n; ++i) { char s[110]; scanf("%s", s); set<int> was; for (int i = 0; s[i] != 0; ++i) if (!was.count(s[i])) { ++cnt[s[i] - 'a']; was.insert(s[i]); } } int res = 0; for (int i = 0; i < 26; ++i) if (cnt[i] == n) ++res; printf("%dn", res); } return 0; }Problem solution in C programming.#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #define NL ('z' - 'a' + 1) int main(int argc, char *argv[]) { if (argc > 1) freopen(argv[1], "r", stdin); //Helpers for input/output int N; int total[NL] = {0}; int part[NL]; unsigned char elem[101]; int result = 0; scanf("%dn", &N); for(int i=0; i<N; i++) { memset(part, 0, NL * sizeof(int)); scanf("%sn", elem); for (unsigned char *c = elem; *c; c++) { if (!part[*c - 'a']) { part[*c - 'a']++; total[*c - 'a']++; } } } for(int i=0; i<NL; i++) { if (total[i] == N) result++; } printf("%dn", result); return 0; }Problem solution in JavaScript programming.'use strict'; function processData(input) { var lines = input.split('n').slice(1); var gemElements = lines.reduce(function(prev, curr, index, array) { var found = []; var letters = curr.split('').map(function(letter){ if(prev.indexOf(letter) !== -1 && found.indexOf(letter) === -1) { found.push(letter); return letter; } }); return letters.join(''); }); console.log(gemElements.length); } process.stdin.resume(); process.stdin.setEncoding("ascii"); var _input = ""; process.stdin.on("data", function (input) { _input += input; }); process.stdin.on("end", function () { processData(_input); }); Algorithms coding problems solutions AlgorithmsHackerRank