以非常大的数字打印所有3位重复数字

给定一个非常大的数字,打印所有3位数的重复数字及其频率。如果一个3位数的数字出现多次,请打印该数字及其频率。 例子:

null
Input: 123412345123456Output: 123 - 3 times         234 - 3 times         345 - 2 times Input: 43243243Output: 432 - 2 times        324 - 2 times        243 - 2 times

方法: 因为这个数字非常大,所以它存储在一个字符串中。最初,前三位数字将是左起的前三个字符。从字符串左侧的第三个索引中迭代字符串,并执行%100以删除第一个字符并附加i th 在末尾添加索引编号以获取新编号。增加哈希映射中数字的频率。最后,当生成所有3位数的数字时,打印所有频率超过1的数字。 以下是上述理念的实施情况:

C++

// CPP program to print 3 digit repeating numbers
#include <bits/stdc++.h>
using namespace std;
// function to print 3
// digit repeating numbers
void printNum(string s)
{
int i = 0, j = 0, val = 0;
// Hashmap to store the
// frequency of a 3 digit number
map < int , int > mp;
// first three digit number
val = (s[0] - '0' ) * 100
+ (s[1] - '0' ) * 10
+ (s[2] - '0' );
mp[val] = 1;
for (i = 3; i < s.length(); i++) {
val = (val % 100) * 10 + s[i] - '0' ;
// if key already exists
// increase value by 1
if (mp.find(val) != mp.end()) {
mp[val] = mp[val] + 1;
}
else {
mp[val] = 1;
}
}
// Output the three digit numbers with frequency>1
for ( auto m : mp) {
int key = m.first;
int value = m.second;
if (value > 1)
cout << key  << " - " << value << " times" << endl;
}
}
// Driver Code
int main()
{
// Input string
string input = "123412345123456" ;
// Calling Function
printNum(input);
}
// This code is contributed by Nishant Tanwar


JAVA

// Java program to print 3 digit repeating numbers
import java.util.*;
import java.lang.*;
public class GFG {
// function to print 3
// digit repeating numbers
static void printNum(String s)
{
int i = 0 , j = 0 , val = 0 ;
// Hashmap to store the
// frequency of a 3 digit number
LinkedHashMap<Integer, Integer> hm
= new LinkedHashMap<>();
// first three digit number
val = (s.charAt( 0 ) - '0' ) * 100
+ (s.charAt( 1 ) - '0' ) * 10
+ (s.charAt( 2 ) - '0' );
hm.put(val, 1 );
for (i = 3 ; i < s.length(); i++) {
val = (val % 100 ) * 10 + s.charAt(i) - '0' ;
// if key already exists
// increase value by 1
if (hm.containsKey(val)) {
hm.put(val, hm.get(val) + 1 );
}
else {
hm.put(val, 1 );
}
}
// Output the three digit numbers with frequency>1
for (Map.Entry<Integer, Integer> en : hm.entrySet()) {
int key = en.getKey();
int value = en.getValue();
if (value > 1 )
System.out.println(key + " - " + value + " times" );
}
}
// Driver Code
public static void main(String args[])
{
// Input string
String input = "123412345123456" ;
// Calling Function
printNum(input);
}
}


Python3

# Python3 program to print
# 3 digit repeating numbers
# Function to print 3
# digit repeating numbers
def printNum(s):
i, j, val = 0 , 0 , 0
# Hashmap to store the
# frequency of a 3 digit number
mp = {}
# first three digit number
val = (( ord (s[ 0 ]) - ord ( '0' )) * 100 +
( ord (s[ 1 ]) - ord ( '0' )) * 10 +
( ord (s[ 2 ]) - ord ( '0' )))
mp[val] = 1
for i in range ( 3 , len (s)):
val = (val % 100 ) * 10 + ord (s[i]) - ord ( '0' )
# if key already exists
# increase value by 1
if (val in mp):
mp[val] = mp[val] + 1
else :
mp[val] = 1
# Output the three digit
# numbers with frequency>1
for m in mp:
key = m
value = mp[m]
if (value > 1 ):
print (key, " - " , value, " times" )
# Driver Code
if __name__ = = "__main__" :
# Input string
input = "123412345123456"
# Calling Function
printNum( input )
# This code is contributed by Chitranayal


C#

// C# program to print 3 digit repeating numbers
using System;
using System.Collections.Generic;
class GFG
{
// function to print 3
// digit repeating numbers
static void printNum(String s)
{
int i = 0, val = 0;
// Hashmap to store the
// frequency of a 3 digit number
Dictionary< int ,
int > hm = new Dictionary< int ,
int >();
// first three digit number
val = (s[0] - '0' ) * 100 +
(s[1] - '0' ) * 10 +
(s[2] - '0' );
hm.Add(val, 1);
for (i = 3; i < s.Length; i++)
{
val = (val % 100) * 10 + s[i] - '0' ;
// if key already exists
// increase value by 1
if (hm.ContainsKey(val))
{
hm[val] = hm[val] + 1;
}
else
{
hm.Add(val, 1);
}
}
// Output the three digit numbers with frequency>1
foreach (KeyValuePair< int , int > en in hm)
{
int key = en.Key;
int value = en.Value;
if (value > 1)
Console.WriteLine(key + " - " +
value + " times" );
}
}
// Driver Code
public static void Main(String []args)
{
// Input string
String input = "123412345123456" ;
// Calling Function
printNum(input);
}
}
// This code is contributed by PrinciRaj1992


Javascript

<script>
// Javascript program to print 3 digit repeating numbers
// function to print 3
// digit repeating numbers
function printNum(s)
{
let i = 0, j = 0, val = 0;
// Hashmap to store the
// frequency of a 3 digit number
let hm = new Map();
// first three digit number
val = (s[0].charCodeAt(0) - '0' .charCodeAt(0)) * 100
+ (s[1].charCodeAt(0) - '0' .charCodeAt(0)) * 10
+ (s[2].charCodeAt(0) - '0' .charCodeAt(0));
hm.set(val, 1);
for (i = 3; i < s.length; i++) {
val = (val % 100) * 10 + s[i].charCodeAt(0) - '0' .charCodeAt(0);
// if key already exists
// increase value by 1
if (hm.has(val)) {
hm.set(val, hm.get(val) + 1);
}
else {
hm.set(val, 1);
}
}
// Output the three digit numbers with frequency>1
for (let [Key, Value] of hm.entries()) {
let key = Key;
let value = Value;
if (value > 1)
document.write(key + " - " + value + " times<br>" );
}
}
// Driver Code
// Input string
let input = "123412345123456" ;
// Calling Function
printNum(input);
// This code is contributed by avanitrachhadiya2155
</script>


输出:

123 - 3 times234 - 3 times345 - 2 times

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享