列表

详情


GP28. 单词字符

描述

给定一个只由字母和数字组成的字符串,,统计每个字符出现的次数,并返回出现次数最多的字符。

知识点:
1,组成每个字符串的元素叫做“字符”,可以通过遍历或者单个获取字符串元素获得字符。 字符用单引号(’)包裹起来,如:
var a = '中'
1,map的每个key是唯一的
2,map的声明:map[KeyType]ValueType KeyType:表示键的类型。ValueType:表示键对应的值的类型。map类型的变量默认初始值为nil,需要使用make()函数来分配内存。语法为:make(map[KeyType]ValueType, [cap]) 其中cap表示map的容量,该参数虽然不是必须的,但是我们应该在初始化map的时候就为其指定一个合适的容量。

示例1

输入:

"yyds"

输出:

y

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

Go 解法, 执行用时: 3ms, 内存消耗: 812KB, 提交时间: 2022-06-04

package main
//import "fmt"

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param s string字符串 
 * @return char字符型
*/
func character( s string ) byte {
    // write code here
    str := []byte(s)    //1.将每个字符依次存起来
    n := 0    //2.用于统计出现次数
    var b byte    //3.用于返回出现最多次的字符
    m := make(map[byte]int)    //5.将字符当作下标,出现次数当作值
    for _, val := range str {
        //4.依次把出现的字符放入集合里,重复n+1
        m[val]++
        //6.与n比较,把出现最多次的传给b
        if m[val] > n {
            n = m[val]
            b = val
        }
    }
    return b
}

Go 解法, 执行用时: 3ms, 内存消耗: 828KB, 提交时间: 2022-06-14

package main
//import "fmt"

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param s string字符串 
 * @return char字符型
*/
func character( s string ) byte {
    // write code here
    arr:= []byte(s)
    n:=0
    var ans byte
    m:=make(map[byte]int)
    for _,val:=range arr{
        m[val]++
    
    if(m[val]>n){
        n=m[val]
        ans=val
    }
    }
    return ans
    
    
}

Go 解法, 执行用时: 3ms, 内存消耗: 832KB, 提交时间: 2022-07-19

package main

//import "fmt"

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param s string字符串
 * @return char字符型
 */
func character(s string) byte {
	// write code here
	g := make(map[byte]int)
	for _, v := range s {
        g[byte(v)]++
	}
	max := 0
	var maxAlp byte
	for k, v := range g {
		if v > max {
			max = v
			maxAlp = k
		}
	}
    return maxAlp
}

Go 解法, 执行用时: 3ms, 内存消耗: 836KB, 提交时间: 2022-08-03

package main
//import "fmt"

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param s string字符串 
 * @return char字符型
*/
func character( s string ) byte {
    // write code here
    arr := []byte(s)
    counter := map[byte]int{}
    max := 0
    var maxChar byte
    for _, v := range(arr) {
        counter[v]++
        if counter[v] > max {
            maxChar = v
            max = counter[v]
        }
    }
    return maxChar
}

Go 解法, 执行用时: 3ms, 内存消耗: 868KB, 提交时间: 2022-06-09

package main
//import "fmt"

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param s string字符串 
 * @return char字符型
*/
func character( s string ) byte {
    // write code here
    
    arr:=([]byte)(s)
    
    
    m:=make(map[byte]int)
    for _,v:=range arr{
     
        if _,ok:=m[v];ok{
            m[v]++
        }else{
            m[v]=1
        }
    }
    var flag int =0
    var str byte
    for k,v:=range m{
        if v>flag{
            flag=v
            str=k
        }
    } 
    return str
}

上一题