本文概述
- C ++
- Java
- Python3
- C#
例子:
Input : s1 = "sssgeek", s2 = "geeksss"
Output : Yes
Max occurring character in s1 is
's'. It occurs same number of times
in s2.Input :geekyarticle
gfggfggfg
Output : No
将字符数存储在第一个字符串中并找到最大数。现在遍历第二个字符串, 并检查最大出现的字符是否出现相同的次数。
下面的程序来说明以上问题
C ++
//C++ program to check the problem
#include <
bits/stdc++.h>
using namespace std;
#define ll long long
#define ASCIISIZE 256int match(string s1, string s2)
{
//Create array to keep the count of individual
//characters and initialize the array as 0
int count[ASCIISIZE] = { 0 };
//Construct character count array from the input
//string.
for ( int i = 0;
i <
s1.length();
i++)
count[s1[i]]++;
//Count occurrences of maximum occurring character
int mx_cnt = 0, mx_chr;
for ( int i = 0;
i <
ASCIISIZE;
i++) {
if (count[i]>
mx_cnt) {
mx_cnt = count[i];
mx_chr = i;
}
}//look if that character is present, the same
//number of times it is present in second string
for ( int i = 0;
i <
s2.length();
i++)
if (mx_chr == s2[i])
mx_cnt--;
//check if sum is greater or equal to number
//return 1
if (mx_cnt == 0)
return 1;
}//Driver program to test the above function
int main()
{
string s1 = "geekforgeeks" , s2 = "geekisgeeky" ;
if (match(s1, s2))
cout <
<
"Yes " ;
else
cout <
<
"No" ;
return 0;
}
Java
//Java program to check the problem
class GFG
{
static int ASCIISIZE = 256 ;
static int match(String s1, String s2)
{
//Create array to keep the
//count of individual characters
//and initialize the array as 0
int count[] = new int [ASCIISIZE];
//Construct character count
//array from the input string.
char []s3 = s1.toCharArray();
for ( int i = 0 ;
i <
s3.length;
i++)
count[s3[i]]++;
//Count occurrences of
//maximum occurring character
int mx_cnt = 0 ;
int mx_chr = 0 ;
for ( int i = 0 ;
i <
ASCIISIZE;
i++)
{
if (count[i]>
mx_cnt)
{
mx_cnt = count[i];
mx_chr = i;
}
}//look if that character is
//present, the same number
//of times it is present in
//second string
char []s4 = s2.toCharArray();
for ( int i = 0 ;
i <
s4.length;
i++)
if (mx_chr == s4[i])
mx_cnt--;
//check if sum is greater or
//equal to number return 1
if (mx_cnt == 0 )
return 1 ;
else
return 0 ;
}//Driver Code
public static void main(String[] args)
{
String s1 = "geekforgeeks" , s2 = "geekisgeeky" ;
int p = match(s1, s2);
if (p == 1 )
System.out.println( "Yes " );
else
System.out.println( "No" );
}
}//This code is contributed
//by ChitraNayal
Python3
# Python3 program to
# check the problem# define function for Check
# if max occurring character
# of one string appears same
# no. of times in other
def match(s1, s2) :# declare empty list
count_list = []# iterate through each
# character of the string
for char in s1 :# find occurrence of
# the character
count = s1.count(char)# append tuple value
# to the list
count_list.append((count, char))# return tuple of max count
max_occ = max (count_list)# store max count in mx_cnt
mx_cnt = max_occ[ 0 ]# store max count
# character in mx_chr
mx_chr = max_occ[ 1 ]# look if max count character
# is present in s1, the same
# number of times it is present
# in second string s2 or not
# if present return True
# otherwise False.
if mx_cnt = = s2.count(mx_chr) :
return True
else :
return False# Driver Code
if __name__ = = "__main__" :s1 = "lsbin"
s2 = "geekisgeeky"if match(s1, s2) :
print ( "Yes" )
else :
print ( "No" )# This code is contributed
# by Ankit Rai
C#
//C# program to check the problem
using System;
class GFG
{
static int ASCIISIZE = 256;
static int match(String s1, String s2)
{
//Create array to keep the
//count of individual characters
//and initialize the array as 0
int []count = new int [ASCIISIZE];
//Construct character count
//array from the input string.
for ( int i = 0;
i <
s1.Length;
i++)
count[s1[i]]++;
//Count occurrences of
//maximum occurring character
int mx_cnt = 0;
int mx_chr = 0;
for ( int i = 0;
i <
ASCIISIZE;
i++)
{
if (count[i]>
mx_cnt)
{
mx_cnt = count[i];
mx_chr = i;
}
}//look if that character is
//present, the same number
//of times it is present
//in second string
for ( int i = 0;
i <
s2.Length;
i++)
if (mx_chr == s2[i])
mx_cnt--;
//check if sum is greater
//or equal to number return 1
if (mx_cnt == 0)
return 1;
else
return 0;
}//Driver Code
public static void Main()
{
String s1 = "geekforgeeks" , s2 = "geekisgeeky" ;
int p = match(s1, s2);
if (p == 1)
Console.Write( "Yes " );
else
Console.Write( "No" );
}
}//This code is contributed
//by ChitraNayal
输出如下:
Yes
推荐阅读
- 算术管道和指令管道详细指南
- Python旋转列表的方式
- 用数组的总大小和该元素的频率之差替换每个元素
- Python继承中的方法解析顺序
- 对于给定数组的任何排列,最大化第一个元素的按位与,并保留其余元素
- 如何使用PHP通过HTML表单在JSON文件中附加数据()
- 将给定矩阵转换为排序的螺旋矩阵
- 查找一个N x N网格,其每行和每列的xor相等
- 算法题(满足给定方程的最小正整数X)