欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > 【LeetCode】2309:兼具大小写的最好英文字母

【LeetCode】2309:兼具大小写的最好英文字母

2025/10/20 14:30:30 来源:https://blog.csdn.net/Coffeemaker88/article/details/142073391  浏览:    关键词:【LeetCode】2309:兼具大小写的最好英文字母

题目描述

见LeetCode.2309题目。

C++

以下是官方题解当中给出做法的复现。

class Solution {
public:string greatestLetter(string s) {unordered_set<char> ht(s.begin(), s.end());for (int i=25; i>=0; i--){if (ht.count('a' + i) > 0 && ht.count('A' + i) > 0){return string(1, 'A' + i);}}return "";};

第一次使用unordered_set这个容器。官方题解当中的思路是使用一个哈希表,如果字符在原字符串当中出现过,则设置为true,最后对hashmap进行遍历,如果最大的小写字母和大写字母同时出现,那么它就是答案,否则输出空串。

Golang

以下是使用Golang语言进行的官方题解代码复现。

func greatestLetter(s string) string {set := map[rune]bool{}for _, c := range s {set[c] = true}for i := 'Z' ; i >= 'A'; i -- {if set[i] && set[unicode.ToLower(i)]{return string(i)}}return ""
}

查阅了一些相关资料,对Go当中=:=的区别(https://zhuanlan.zhihu.com/p/623547784)加以总结:

  • :=用于短变量的声明和初始化,该运算符可以定义一个新的变量并进行赋值,例如x := 10。这个语法糖会根据:=右边的表达式类型自动推导出左侧变量的类型。需要注意的是,:=只能在函数内部使用,在函数的外部只能使用var关键字;
  • =符号用于变量的赋值操作,它将右边的值赋给左边的变量,例如x = 20。需要注意的是=只能用于变量的赋值,而不会自动地进行变量类型的推导。

因此,上述Go代码当中的第一行set := map[rune]bool{}相当于声明了一个名为setmap类型变量,并赋值(所赋的值就是map类型实例)。

而在第二个for循环中,Go语言使用unicode.ToLower()方法获取大写字母的小写版本。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com