383. 赎金信 golang byte和rune的区别

Me

func canConstruct(ransomNote string, magazine string) bool {
    if len(ransomNote) == 0 && len(magazine) == 0 || len(ransomNote) == 0 {
		return true
	}
	if len(magazine) == 0 {
		return false
	}

	dict1 := make(map[rune]int, 0)
    dict2 := make(map[rune]int, 0)

	for _, v := range ransomNote {
		dict1[v]++
	}
	for _, v := range magazine {
		dict2[v]++
	}

	for k1, v1 := range dict1 {// 这个是子集,所以条件成立的话。父级在k1元素中是有值的。且k2的元素比k1的大
		if v2, ok := dict2[k1]; !ok || v2 < v1 {
			return false
		}
	}

	return true
}

byte和rune的区别

byte和rune

源码

type byte = uint8

// rune is an alias for int32 and is equivalent to int32 in all ways. It is
// used, by convention, to distinguish character values from integer values.
type rune = int32

byte

first := "fisrt"
fmt.Println([]rune(first))
fmt.Println([]byte(first))
[102 105 115 114 116] // 输出结果 [] rune
[102 105 115 114 116] // 输出结果 [] byte

rune

first := "社区"
fmt.Println([]rune(first))
fmt.Println([]byte(first))
[31038 21306] // 输出结果 [] rune
[231 164 190 229 140 186]// 输出结果 [] byte

截取中文字符串

package main

import "fmt"

func main() {
	s := "中国很大"
	res := []rune(s)
	fmt.Println(string(res[:2]))
}

// 中国
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值