本文概述
- 建议:在继续解决方案之前, 请先在{IDE}上尝试使用你的方法。
- C ++
- Java
- Python3
- C#
【输入字符串中出现的最大字符数|s2】例子:
输入:测试样本输出:e" t", " e"和" s"出现2次, 但" e"是字典上最小的字符。输入:示例程序输出:a推荐:请尝试以下方法{IDE}首先, 在继续解决方案之前。在里面以前文章中, 如果在最大时间范围内出现多个字符, 则将返回任何字符。在这篇文章中, 返回所有字符中按字典顺序最小的字符。
方法:声明一个频率[26]用作哈希表的数组, 用于存储输入字符串中每个字符的频率。迭代字符串并增加计数频率展开]对于每个字符。遍历频率[]从左到右排列, 并跟踪到目前为止具有最大频率的字符。 freq [i]处的值表示字符(i +'a')的频率。
下面是上述方法的实现:
C ++
// C++ implementation to find
// the maximum occurring character in
// an input string which is lexicographically first
#include <
bits/stdc++.h>
using namespace std;
// function to find the maximum occurring character in
// an input string which is lexicographically first
char getMaxOccurringChar( char str[])
{
// freq[] used as hash table
int freq[26] = { 0 };
// to store maximum frequency
int max = -1;
// to store the maximum occurring character
char result;
// length of 'str'
int len = strlen (str);
// get frequency of each character of 'str'
for ( int i = 0;
i <
len;
i++)
freq[str[i] - 'a' ]++;
// for each character, where character is obtained by
// (i + 'a') check whether it is the maximum character
// so far and accodingly update 'result'
for ( int i = 0;
i <
26;
i++)
if (max <
freq[i]) {
max = freq[i];
result = ( char )(i + 'a' );
}// maximum occurring character
return result;
}// Driver Code
int main()
{
char str[] = "sample program" ;
cout <
<
"Maximum occurring character = "
<
<
getMaxOccurringChar(str);
return 0;
}
Java
// Java implementation to find
// the maximum occurring character in
// an input string which is lexicographically firstclass GFG {// function to find the maximum occurring character in
// an input string which is lexicographically first
static char getMaxOccurringChar( char str[]) {
// freq[] used as hash table
int freq[] = new int [ 26 ];
// to store maximum frequency
int max = - 1 ;
// to store the maximum occurring character
char result = 0 ;
// length of 'str'
int len = str.length;
// get frequency of each character of 'str'
for ( int i = 0 ;
i <
len;
i++) {
if (str[i] != ' ' ) {
freq[str[i] - 'a' ]++;
}
}// for each character, where character is obtained by
// (i + 'a') check whether it is the maximum character
// so far and accodingly update 'result'
for ( int i = 0 ;
i <
26 ;
i++) {
if (max <
freq[i]) {
max = freq[i];
result = ( char ) (i + 'a' );
}
}// maximum occurring character
return result;
}// Driver Code
public static void main(String[] args) {
char str[] = "sample program" .toCharArray();
System.out.println( "Maximum occurring character = "
+ getMaxOccurringChar(str));
}
} // This code is contributed by 29AjayKumar
Python3
# Python 3 implementation to find the
# maximum occurring character in an input
# string which is lexicographically first# function to find the maximum occurring
# character in an input string which is
# lexicographically first
def getMaxOccurringChar( str ):# freq[] used as hash table
freq = [ 0 for i in range ( 100 )] # to store maximum frequency
max = - 1# to store the maximum occurring
# character length of 'str'
len__ = len ( str )# get frequency of each character of 'str'
for i in range ( 0 , len__, 1 ):
freq[ ord ( str [i]) - ord ( 'a' )] + = 1# for each character, where character
# is obtained by (i + 'a') check whether
# it is the maximum character so far and
# accodingly update 'result'
for i in range ( 26 ):
if ( max <
freq[i]):
max = freq[i]
result = chr ( ord ( 'a' ) + i)# maximum occurring character
return result# Driver Code
if __name__ = = '__main__' :
str = "sample program"
print ( "Maximum occurring character =" , getMaxOccurringChar( str ))# This code is contributed by
# Surendra_Gangwar
C#
// C# implementation to find
// the maximum occurring character in
// an input string which is lexicographically firstusing System;
class GFG {// function to find the maximum occurring character in
// an input string which is lexicographically first
static char getMaxOccurringChar( string str) {
// freq[] used as hash table
int [] freq = new int [26];
// to store maximum frequency
int max = -1;
// to store the maximum occurring character
char result = ( char )0;
// length of 'str'
int len = str.Length;
// get frequency of each character of 'str'
for ( int i = 0;
i <
len;
i++) {
if (str[i] != ' ' ) {
freq[str[i] - 'a' ]++;
}
}// for each character, where character is obtained by
// (i + 'a') check whether it is the maximum character
// so far and accodingly update 'result'
for ( int i = 0;
i <
26;
i++) {
if (max <
freq[i]) {
max = freq[i];
result = ( char ) (i + 'a' );
}
}// maximum occurring character
return result;
}// Driver Code
public static void Main() {
string str = "sample program" ;
Console.WriteLine( "Maximum occurring character = "
+ getMaxOccurringChar(str));
}
}
输出如下:
Maximum occurring character = a
时间复杂度:
上)。
辅助空间:
O(1)。
资源: 佩剑面试经验|套装2
推荐阅读
- 经典推荐(一些有用的Linux技巧详细介绍)
- Python检查两个列表是否相同
- python访问MySQL数据库及其操作详解 – Python高级开发教程
- python CGI编程和Web开发 – Python高级开发教程
- python面向对象编程(类和对象详解介绍 – Python高级开发教程)
- python异常处理和断言 – Python入门开发教程
- python函数定义和操作详解介绍 – Python入门开发教程
- 如何为道德黑客建立个人实验室()
- jQuery Timepicker插件用法详细教程