热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【算法leetcode每日一练】2194.Excel表中某个范围内的单元格

文章目录2194.Excel表中某个范围内的单元格:样例1:样例2:提示:分析题解javaccpythongorustjav


文章目录

  • 2194. Excel 表中某个范围内的单元格:
  • 样例 1:
  • 样例 2:
  • 提示:
  • 分析
  • 题解
    • java
    • c
    • c++
    • python
    • go
    • rust
    • Javascript
    • typescript
  • 原题传送门:https://leetcode-cn.com/problems/cells-in-a-range-on-an-excel-sheet/




2194. Excel 表中某个范围内的单元格:

Excel 表中的一个单元格 (r, c) 会以字符串 "" 的形式进行表示,其中:

  • 即单元格的列号 c 。用英文字母表中的 字母 标识。

    • 例如,第 1 列用 'A'表示,第 2 列用 'B' 表示,第 3 列用 'C' 表示,以此类推。
  • 即单元格的行号 r 。第 r 行就用 整数 r 标识。

给你一个格式为 ":" 的字符串 s &#xff0c;其中 表示 c1 列&#xff0c; 表示 r1 行&#xff0c; 表示 c2 列&#xff0c; 表示 r2 行&#xff0c;并满足 r1 <&#61; r2c1 <&#61; c2

找出所有满足 r1 <&#61; x <&#61; r2c1 <&#61; y <&#61; c2 的单元格&#xff0c;并以列表形式返回。单元格应该按前面描述的格式用 字符串 表示&#xff0c;并以 非递减 顺序排列&#xff08;先按列排&#xff0c;再按行排&#xff09;。

样例 1&#xff1a;

在这里插入图片描述

输入&#xff1a;s &#61; "K1:L2"输出&#xff1a;["K1","K2","L1","L2"]解释&#xff1a;上图显示了列表中应该出现的单元格。红色箭头指示单元格的出现顺序。

样例 2&#xff1a;

在这里插入图片描述

输入&#xff1a;s &#61; "A1:F1"输出&#xff1a;["A1","B1","C1","D1","E1","F1"]解释&#xff1a;上图显示了列表中应该出现的单元格。 红色箭头指示单元格的出现顺序。

提示&#xff1a;

  • s.length &#61;&#61; 5
  • ‘A’ <&#61; s[0] <&#61; s[3] <&#61; ‘Z’
  • ‘1’ <&#61; s[1] <&#61; s[4] <&#61; ‘9’
  • s 由大写英文字母、数字、和 ‘:’ 组成



分析
  • 面对这道算法题目&#xff0c;二当家的陷入了沉思。
  • 第一步要能从参数字符串中截取出起始行列和终止行列的值。
  • 第二步遍历生成结果&#xff0c;由于要求结果有序&#xff0c;所以我们如果可以在生成时就满足要求&#xff0c;就可以不用后面再来一次排序了。



题解

java

class Solution {public List<String> cellsInRange(String s) {List<String> ans &#61; new ArrayList<>();char[] cs &#61; new char[2];for (cs[0] &#61; s.charAt(0); cs[0] <&#61; s.charAt(3); cs[0]&#43;&#43;) {for (cs[1] &#61; s.charAt(1); cs[1] <&#61; s.charAt(4); cs[1]&#43;&#43;) {ans.add(String.valueOf(cs));}}return ans;}
}



c

/*** Note: The returned array must be malloced, assume caller calls free().*/
char ** cellsInRange(char * s, int* returnSize){*returnSize &#61; (s[3] - s[0] &#43; 1) * (s[4] - s[1] &#43; 1);char **ans &#61; (char **) malloc(*returnSize * sizeof(char *));for (char c &#61; s[0]; c <&#61; s[3]; &#43;&#43;c) {for (char r &#61; s[1]; r <&#61; s[4]; &#43;&#43;r) {int index &#61; (c - s[0]) * (s[4] - s[1] &#43; 1) &#43; (r - s[1]);ans[index] &#61; (char *) malloc(3 * sizeof(char));ans[index][0] &#61; c;ans[index][1] &#61; r;ans[index][2] &#61; &#39;\0&#39;;}}return ans;
}



c&#43;&#43;

class Solution {
public:vector<string> cellsInRange(string s) {vector<string> ans;for (char c &#61; s[0]; c <&#61; s[3]; &#43;&#43;c) {for (char r &#61; s[1]; r <&#61; s[4]; &#43;&#43;r) {ans.push_back({c, r});}}return ans;}
};



python

class Solution:def cellsInRange(self, s: str) -> List[str]:return [chr(c) &#43; chr(r) for c in range(ord(s[0]), ord(s[3]) &#43; 1) for r in range(ord(s[1]), ord(s[4]) &#43; 1)]



go

func cellsInRange(s string) []string {var ans []stringfor c :&#61; s[0]; c <&#61; s[3]; c&#43;&#43; {for r :&#61; s[1]; r <&#61; s[4]; r&#43;&#43; {ans &#61; append(ans, string(c)&#43;string(r))}}return ans
}



rust

impl Solution {pub fn cells_in_range(s: String) -> Vec<String> {let mut ans &#61; Vec::new();(s.as_bytes()[0]..(s.as_bytes()[3] &#43; 1)).for_each(|c| {(s.as_bytes()[1]..(s.as_bytes()[4] &#43; 1)).for_each(|r| {ans.push(String::from_utf8(vec![c, r]).unwrap());});});ans}
}



Javascript

/*** &#64;param {string} s* &#64;return {string[]}*/
var cellsInRange &#61; function(s) {let ans &#61; [];for (let c &#61; s[0].charCodeAt(); c <&#61; s[3].charCodeAt(); c&#43;&#43;) {for (let r &#61; s[1]; r <&#61; s[4]; r&#43;&#43;) {ans.push(String.fromCharCode(c) &#43; r);}}return ans;
};



typescript

function cellsInRange(s: string): string[] {let ans &#61; [];for (let c &#61; s[0].charCodeAt(0); c <&#61; s[3].charCodeAt(0); c&#43;&#43;) {for (let r &#61; Number.parseInt(s[1]); r <&#61; Number.parseInt(s[4]); r&#43;&#43;) {ans.push(String.fromCharCode(c) &#43; r);}}return ans;
};


在这里插入图片描述



原题传送门&#xff1a;https://leetcode-cn.com/problems/cells-in-a-range-on-an-excel-sheet/


非常感谢你阅读本文~
欢迎【&#x1f44d;点赞】【⭐收藏】【&#x1f4dd;评论】~
放弃不难&#xff0c;但坚持一定很酷~
希望我们大家都能每天进步一点点~
本文由 二当家的白帽子&#xff1a;https://le-yi.blog.csdn.net/ 博客原创~




推荐阅读
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • 浙江大学2005–2006学年秋冬季学期《大学计算机基础》课程期末考试试卷开课学院:计算中心,考试形式:闭卷,允许带入场考试 ... [详细]
  • 似乎有两种不同的方法可以将字符串转换为字节,如对typeerror的回答所示:str不支持缓冲区接口。这些方法中哪一种比较好或更适合用Python& ... [详细]
  • 《从零构建前后星散的web项目》:前端相识过关了吗?
    #前端基本架构和硬核引见手艺栈的挑选起首我们构建前端架构须要对前端生态圈有统统相识,而且最好带有肯定的手艺前瞻性,好的手艺架构能够日后会轻易的扩大,削减重构的次数,纵然重构也不须要 ... [详细]
  • 写在文章前这篇文章翻译自ASYNCAWAITWILLMAKEYOURCODESIMPLER,这是一篇写于2017年八月的文章,并由某专栏提名为17年十大必读文章。翻译的不好的处所, ... [详细]
  • 用typescript来写npm模块还不知道typescript是啥的前端童鞋需要做下功课了。随着es6的普及,越来越多的npm模块都开始用es6编写或者重构,看上去或者听起来都挺 ... [详细]
  • 前言无论使用哪种语言,我们都需要关注性能优化,提高执行效率。选择脚本语言需要持久的速度。在某种程度上,这句话说明了Python作为一种脚 ... [详细]
  • node python 后台启动_pm2 开机启动egg项目
    egg部署在本地开发时,我们使用egg-bindev来启动服务,但是在部署应用的时候不可以这样使用。因为egg-bindev会针对本地开发做很多处理&# ... [详细]
  • 2022 前端领域的新变化
    大厂技术高级前端Node进阶点击上方程序员成长指北,关注公众号回复1,加入高级Node交流群vue3步入成年期想必大家看到了Vue3将在2022年2月 ... [详细]
  • pandas的自带数据集_Pandas到底是个怎样的包?
    sh说明:本pandas非卧龙的pandas,而是Python众多科学计算包中的pandas。本次Pandas的简洁介绍,针对的是此包的新手࿰ ... [详细]
  • 本文介绍了使用Rust语言编写、保存和编译程序的简单步骤。首先,打开记事本文件并编写程序代码,然后将代码保存到一个以.rs为扩展名的文件中。接下来,使用rustc命令来编译运行程序。最后,通过命令行运行编译后的程序,得到输出结果。如果遇到编译错误,可以下载Build Tools for Visual Studio 2017来解决。 ... [详细]
  • [转载]从零开始学习OpenGL ES之四 – 光效
    继续我们的iPhoneOpenGLES之旅,我们将讨论光效。目前,我们没有加入任何光效。幸运的是,OpenGL在没有设置光效的情况下仍然可 ... [详细]
  • 我们前面都是用python2给大家讲解,但是python2官方到2020年就不维护了,所以我们是时候用下python3了,本节以安装最新版 ... [详细]
author-avatar
徐新nina
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有