Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >2021-06-25:只由小写字母(a~z)组成的一批字符串,都放

2021-06-25:只由小写字母(a~z)组成的一批字符串,都放

原创
作者头像
福大大架构师每日一题
修改于 2021-06-26 05:13:49
修改于 2021-06-26 05:13:49
3720
举报

2021-06-25:只由小写字母(a~z)组成的一批字符串,都放在字符类型的数组String[] arr中,如果其中某两个字符串所含有的字符种类完全一样,就将两个字符串算作一类,比如:baacbba和bac就算作一类。返回arr中有多少类?

福大大 答案2021-06-25:

用位操作。小写字母一共26个,整型32位,足够用了。a到z对应0到26,遍历字符串,如果是a,整型的第0位变成为1;如果是c,整型的2位变成1。然后保存到set里。多个字符串,都重复这个操作。最后获取set的元素个数,就是需要的返回值。

代码用golang编写。代码如下:

代码语言:txt
AI代码解释
复制
package main

import "fmt"

func main() {
	arr := []string{"moonfdd", "fddmoon", "aabbcc", "abcde", "abecd"}
	ret := types2(arr)
	fmt.Println(ret)
}

func types2(arr []string) int {
	types := make(map[int]struct{})
	for _, str := range arr {
		key := 0
		for i := 0; i < len(str); i++ {
			key |= 1 << (str[i] - 'a')
		}
		types[key] = struct{}{}
	}
	return len(types)
}

执行结果如下:

图片
图片

左神java代码

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
2021-06-25:只由小写字母(a~z)组成的一批字符串,都放在字符类型的数组String[] arr中,如果其中某两个字符
2021-06-25:只由小写字母(a~z)组成的一批字符串,都放在字符类型的数组String[] arr中,如果其中某两个字符串所含有的字符种类完全一样,就将两个字符串算作一类,比如:baacbba和bac就算作一类。返回arr中有多少类?
福大大架构师每日一题
2021/08/05
5920
2025-06-15:重排子字符串以形成目标字符串。用go语言,给定两个字符串 s 和 t,它们是字母异位词(即包含完全相同的字
2025-06-15:重排子字符串以形成目标字符串。用go语言,给定两个字符串 s 和 t,它们是字母异位词(即包含完全相同的字符,只是顺序不同),以及一个整数 k。
福大大架构师每日一题
2025/06/15
150
2025-06-15:重排子字符串以形成目标字符串。用go语言,给定两个字符串 s 和 t,它们是字母异位词(即包含完全相同的字
2021-06-24:求一个字符串中,最长无重复字符子串长度。
2021-06-24:求一个字符串中,最长无重复字符子串长度。 福大大 答案2021-06-24: 采用滑动窗口。 代码用golang编写。代码如下: package main import "fmt" func main() { s := "moonfdd" ret := lengthOfLongestSubstring(s) fmt.Println(ret) } func lengthOfLongestSubstring(s string) int { // 哈希集合,记录每个字符
福大大架构师每日一题
2021/08/05
3170
2021-05-22:假设所有字符都是小写字母, 大字符串是str,
2021-05-22:假设所有字符都是小写字母, 大字符串是str,arr是去重的单词表, 每个单词都不是空字符串且可以使用任意次。使用arr中的单词有多少种拼接str的方式。 返回方法数。
福大大架构师每日一题
2021/05/22
2080
2021-05-22:假设所有字符都是小写字母, 大字符串是str,
2021-12-24:划分字母区间。 字符串 S 由小写字母组成。我
字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。
福大大架构师每日一题
2021/12/24
1350
2021-06-24:求一个字符串中,最长无重复字符子串长度。
2021-06-24:求一个字符串中,最长无重复字符子串长度。 福大大 答案2021-06-24: 方法一:滑动窗口。自然智慧。 不重复的时候,右指针右移;重复的时候,左指针右移。 方法二:求出最右不重复位置。 map:key是值,value是数组序号,初始值value都是-1。 时间复杂度:O(N)。空间复杂度:O(不同字符个数)。 代码用golang编写。代码如下: package main import "fmt" func main() { s := "moonfdd" ret1 := le
福大大架构师每日一题
2021/06/25
2740
2021-06-24:求一个字符串中,最长无重复字符子串长度。
2021-05-22:假设所有字符都是小写字母, 大字符串是str,arr是去重的单词表, 每个单词都不是空字符串且可以使用任意
2021-05-22:假设所有字符都是小写字母, 大字符串是str,arr是去重的单词表, 每个单词都不是空字符串且可以使用任意次。使用arr中的单词有多少种拼接str的方式。返回方法数。
福大大架构师每日一题
2021/08/05
3820
2023-06-28:你想要用小写字母组成一个目标字符串 target。 开始的时候,序列由 target.length 个 ‘
如果可以印出序列,那么返回一个数组,该数组由每个回合中被印下的最左边字母的索引组成
福大大架构师每日一题
2023/07/09
1770
2023-06-28:你想要用小写字母组成一个目标字符串 target。 开始的时候,序列由 target.length 个 ‘
2021-12-22:回文子串。 给你一个字符串 s ,请你统计并返
解释:6个回文子串: "a", "a", "a", "aa", "aa", "aaa"。
福大大架构师每日一题
2021/12/22
2160
【C语言基础】:字符函数和字符串函数
书山有路勤为径,学海无涯苦作舟。 创作不易,宝子们!如果这篇文章对你们有帮助的话,别忘了给个免费的赞哟~
爱喝兽奶的熊孩子
2024/04/10
1530
【C语言基础】:字符函数和字符串函数
2022-01-24:K 距离间隔重排字符串。 给你一个非空的字符
给你一个非空的字符串 s 和一个整数 k,你要将这个字符串中的字母进行重新排列,使得重排后的字符串中相同字母的位置间隔距离至少为 k。
福大大架构师每日一题
2022/01/24
2430
2021-10-30:有效的字母异位词。给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若
2021-10-30:有效的字母异位词。给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。s 和 t 仅包含小写字母。力扣242。
福大大架构师每日一题
2021/11/09
5110
2021-10-30:有效的字母异位词。给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若
2024-09-21:用go语言,给定一个字符串 s,字符串中的每个字符要么是小写字母,要么是问号‘?‘。对于一个仅包含小写字母
2024-09-21:用go语言,给定一个字符串 s,字符串中的每个字符要么是小写字母,要么是问号'?'。对于一个仅包含小写字母的字符串t,我们定义cost(i)为在t的前i个字符中与t[i]相同的字符的出现次数。字符串 t 的分数是所有位置i的cost(i)之和。现在的任务是用小写字母替换所有的问号'?',使得字符串s的分数最小。如果有多个替换方案使得分数最小,那么返回字典序最小的一个。输入:s = "???"。输出:"abc"。解释:这个例子中,我们将 s 中的问号 '?' 替换得到 "abc" 。对于字符串 "abc" ,cost(0) = 0 ,cost(1) = 0 和 cost(2) = 0 。"abc" 的分数为 0 。其他修改 s 得到分数 0 的字符串为 "cba" ,"abz" 和 "hey" 。这些字符串中,我们返回字典序最小的。
福大大架构师每日一题
2024/09/23
1210
2024-09-21:用go语言,给定一个字符串 s,字符串中的每个字符要么是小写字母,要么是问号‘?‘。对于一个仅包含小写字母
2021-10-30:有效的字母异位词。给定两个字符串 s 和 t ,
2021-10-30:有效的字母异位词。给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。s 和 t 仅包含小写字母。力扣242。
福大大架构师每日一题
2021/10/30
3990
2025-05-26:字符串转换后的长度Ⅱ。用go语言,你有一个只包含小写字母的字符串 s,一个整数 t 表示转换次数,还有一个
2025-05-26:字符串转换后的长度Ⅱ。用go语言,你有一个只包含小写字母的字符串 s,一个整数 t 表示转换次数,还有一个长度为 26 的数组 nums。每次转换过程如下:
福大大架构师每日一题
2025/05/26
370
2025-05-26:字符串转换后的长度Ⅱ。用go语言,你有一个只包含小写字母的字符串 s,一个整数 t 表示转换次数,还有一个
2024-06-12:用go语言,给定一个下标从 0 开始的字符串 `s`,其中包含用户的输入。 所谓按键变更是指按下与上次按下
2024-06-12:用go语言,给定一个下标从 0 开始的字符串 s,其中包含用户的输入。
福大大架构师每日一题
2024/08/16
1480
2024-06-12:用go语言,给定一个下标从 0 开始的字符串 `s`,其中包含用户的输入。 所谓按键变更是指按下与上次按下
C:字符函数与字符串函数-学习笔记
C语言中有一系列的函数是专门做字符分类的,也就是一个字符是属于什么类型的字符的。 这些函数的使用都需要包含一个头文件是 ctype.h。
LonlyMay
2024/10/21
1070
C:字符函数与字符串函数-学习笔记
求字符串中大小写字母个数及其他符号个数!
2.从键盘上输入10个字符到数组中, 并将其转换为字符串,统计该字符串中大写字母、小写字母和其他字符的个数。 public static void main(String[] args) { Scanner scanner=new Scanner(System.in); char[] chars=new char[5]; for (int i = 0; i < chars.length; i++) { System.out.
传说之下的花儿
2023/04/16
2490
深入理解字符串函数和字符函数(islower和isupper、tolower和toupper、strlen、strcpy、strcat、strcmp)(一)
关于strlen和sizeof的对比详见拙作:sizeof 和 strlen的对比及笔试题目-CSDN博客
走在努力路上的自己
2024/01/26
2550
深入理解字符串函数和字符函数(islower和isupper、tolower和toupper、strlen、strcpy、strcat、strcmp)(一)
C语言学习系列-->字符函数和字符串函数
• 源字符串必须以 ‘\0’ 结束。 • 会将源字符串中的 ‘\0’ 拷⻉到⽬标空间。 • ⽬标空间必须⾜够⼤,以确保能存放源字符串。 • ⽬标空间必须可变。 • 学会模拟实现。
南桥
2024/01/26
1280
C语言学习系列-->字符函数和字符串函数
推荐阅读
2021-06-25:只由小写字母(a~z)组成的一批字符串,都放在字符类型的数组String[] arr中,如果其中某两个字符
5920
2025-06-15:重排子字符串以形成目标字符串。用go语言,给定两个字符串 s 和 t,它们是字母异位词(即包含完全相同的字
150
2021-06-24:求一个字符串中,最长无重复字符子串长度。
3170
2021-05-22:假设所有字符都是小写字母, 大字符串是str,
2080
2021-12-24:划分字母区间。 字符串 S 由小写字母组成。我
1350
2021-06-24:求一个字符串中,最长无重复字符子串长度。
2740
2021-05-22:假设所有字符都是小写字母, 大字符串是str,arr是去重的单词表, 每个单词都不是空字符串且可以使用任意
3820
2023-06-28:你想要用小写字母组成一个目标字符串 target。 开始的时候,序列由 target.length 个 ‘
1770
2021-12-22:回文子串。 给你一个字符串 s ,请你统计并返
2160
【C语言基础】:字符函数和字符串函数
1530
2022-01-24:K 距离间隔重排字符串。 给你一个非空的字符
2430
2021-10-30:有效的字母异位词。给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若
5110
2024-09-21:用go语言,给定一个字符串 s,字符串中的每个字符要么是小写字母,要么是问号‘?‘。对于一个仅包含小写字母
1210
2021-10-30:有效的字母异位词。给定两个字符串 s 和 t ,
3990
2025-05-26:字符串转换后的长度Ⅱ。用go语言,你有一个只包含小写字母的字符串 s,一个整数 t 表示转换次数,还有一个
370
2024-06-12:用go语言,给定一个下标从 0 开始的字符串 `s`,其中包含用户的输入。 所谓按键变更是指按下与上次按下
1480
C:字符函数与字符串函数-学习笔记
1070
求字符串中大小写字母个数及其他符号个数!
2490
深入理解字符串函数和字符函数(islower和isupper、tolower和toupper、strlen、strcpy、strcat、strcmp)(一)
2550
C语言学习系列-->字符函数和字符串函数
1280
相关推荐
2021-06-25:只由小写字母(a~z)组成的一批字符串,都放在字符类型的数组String[] arr中,如果其中某两个字符
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档