当前位置: 首页 > article >正文

【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()方法获取大写字母的小写版本。


http://www.kler.cn/a/300891.html

相关文章:

  • 采用海豚调度器+Doris开发数仓保姆级教程(满满是踩坑干货细节,持续更新)
  • 网络设备安全保证计划 (NESAS) - 供应商视角 笔记
  • Dubbo泛化调用
  • go chan底层分析
  • 【Vim Masterclass 笔记14】S07L29 + L30:练习课08 —— Vim 文本对象同步练习(含点评课内容)
  • OpenCV实现Kuwahara滤波
  • Java 用 com.alibaba.druid.pool.DruidDataSource 链接db2数据库示例
  • Kubernetes精讲之控制器的使用
  • 中间件解析了漏洞【IIS Nginx Apache】
  • Request Response
  • React 高阶组件 和 受控组件
  • 基于SpringBoot+Vue的古诗词学习软件系统
  • 单线程 TCP/IP 服务器和客户端的实现
  • C++ 在项目中使用Linux命令
  • solidity学习-15异常
  • 【CSS】 Grid布局:现代网页设计的基石
  • DML(Data Manipulation Language,数据操作语言)
  • Kubernetes上安装Metallb和Ingress并部署应用程序
  • 本地安装Ollama+WebUI
  • 大模型实战教程:使用Langchain与ChatGLM实现本地知识库
  • Linux驱动.之驱动开发思维,设备,驱动,总线分析思想,驱动的分类(字符设备,块设备,网络设备)
  • 多线程和高并发-17题
  • 使用 Homebrew 在 macOS 上安装 Conda
  • flume系列之:记录一次flume agent进程被异常oom kill -9的原因定位
  • 达林顿管阵列ULN2803(8路反向器电路)
  • C++学习笔记(18)