技术标签: 算法千题案例 算法 leetcode 职场和发展
算法题 |
- 每天打卡一道算法题,既是一个学习过程,又是一个分享的过程
- 提示:本专栏解题 编程语言一律使用 C# 和 Java 两种进行解题
- 要保持一个每天都在学习的状态,让我们一起努力成为算法大神吧!
- 今天是力扣算法题持续打卡第78天!
算法题 |
示例1:
输入:S = "5F3Z-2e-9-w", K = 4
输出:"5F3Z-2E9W"
解释:字符串 S 被分成了两个部分,每部分 4 个字符;
注意,两个额外的破折号需要删掉。
示例2:
输入:S = "2-5g-3-J", K = 2
输出:"2-5G-3J"
解释:字符串 S 被分成了 3 个部分,按照前面的规则描述,第一部分的字符可以少于给定的数量,其余部分皆为 2 个字符。
提示:
代码:
public class Solution {
public string LicenseKeyFormatting(string s, int k) {
StringBuilder sb = new StringBuilder();
int cnt = 0;
for (int i = s.Length - 1; i >= 0; i --) {
if (s[i] != '-') {
cnt++;
sb.Append(char.ToUpper(s[i]));
if (cnt % k == 0) {
sb.Append("-");
}
}
}
if (sb.Length > 0 && sb[sb.Length - 1] == '-') {
sb.Remove(sb.Length - 1, 1);
}
char[] cs = sb.ToString().ToCharArray();
Array.Reverse(cs);
return new string(cs);
}
}
执行结果
通过
执行用时:104 ms,在所有 Java 提交中击败了41.50%的用户
内存消耗:41.4 MB,在所有 Java 提交中击败了22.90%的用户
思路解析
代码:
class Solution {
public String licenseKeyFormatting(String s, int k) {
StringBuilder ans = new StringBuilder();
int cnt = 0;
for (int i = s.length() - 1; i >= 0; i--) {
if (s.charAt(i) != '-') {
cnt++;
ans.append(Character.toUpperCase(s.charAt(i)));
if (cnt % k == 0) {
ans.append("-");
}
}
}
if (ans.length() > 0 && ans.charAt(ans.length() - 1) == '-') {
ans.deleteCharAt(ans.length() - 1);
}
return ans.reverse().toString();
}
}
执行结果
通过
执行用时:10 ms,在所有 Java 提交中击败了67.83%的用户
内存消耗:38.4 MB,在所有 Java 提交中击败了99.40%的用户
复杂度分析
时间复杂度:O( N))
空间复杂度:O(1)
C#
和 Java
两种编程语言进行解题文章浏览阅读2.7k次。测试设备是一台Catalyst3750,从思科官网查看Catalyst3750对IPv6的支持情况:Table 7Catalyst 3750, 3560, 3560-C, 2960, 2960-S and 2960-C Switches and Cisco EtherSwitch Service Module Features and the Minimum Cisco IOS Re..._为什么交换机支持ipv6却不能配置?
文章浏览阅读1w次。命令:du 用法 linux文件夹大小 du -sh ./ 查看当前目录大小du -sh * 查看当前目录下的文件夹大小du 命令用途概述磁盘使用。 语法du [ -a | -s ] [ -k ] [ -m ] [ -g ][ -l ] [ -r ] [ -x ] [ -H | -L_du -sh 单位
文章浏览阅读779次。本篇介绍findElement接口中的By TagName方法。首先,要知道什么是tagname。之前我们使用F12开发者工具查看网页元素是,发现每行代码前都有、、、等等标签,这些标签就是tagname了。但是我们都可以看出来,像是、、这些常用的标签,在网页中出现的频率是很高的,如果我们使用tagname来定位元素,可能定位到的就不是我们预想的元素。所以一般配合findElements接口使用,查..._tagname定位
文章浏览阅读1w次,点赞3次,收藏36次。简介:① 若依(ruoyi)是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。② 前端采用Vue、Element UI。③ 后端采用Spring Boot、Spring Security、Redis & Jwt。④ 权限认证使用Jwt,支持多终端认证系统。⑤ 支持加载动态权限菜单,多方式轻松权限控制。⑥ 高效率开发,使用代码生成器可以一键生成前后端代码。如何获取若依?若依是一套开源的项目,可以直接下载使用。从码云cope项目idea新建并打开项目导入S_若依是什么
文章浏览阅读4.6k次,点赞3次,收藏13次。MySQL5.7安装教程。_mysql5.7.41安装教程
文章浏览阅读1w次,点赞19次,收藏47次。个人技术博客的选择:CSDN、博客园、简书、个人建站、知乎专栏、Github Page、新浪?引言:为什么写博客一晃也干了十多年的技术了,也经常穿梭于各种技术论坛之中,得益于各位大V博主的无私奉献。我也想效仿各位博主前辈,一方面是自己知识的总结,一方面也是知识的分享(幼儿园老师不是说过么,要学会分享~~)。最近终于有点时间了,然后发现现在博客平台很多,突然不知从何下手了。于是在网上一顿狂搜,..._github和csdn的区别
文章浏览阅读2.4k次。简介:随着数据量的增加,对redis的读写速度要求也越来越高。为了满足在秒级取值1000+数据,传统的单任务循环取值,消耗实在太大。因此使用redis特有的功能pipeline管道功能,可以很好的解决。批量插入数据操作import redispool = redis.ConnectionPool(host="20.20.100.133", port=6379, db=7)redis = redis.Redis(connection_pool=pool, decode_responses=True)_python redis pipeline批量取值
文章浏览阅读2.5k次。本节目录:(一)笔记总结;(二)gevent-websocket+flask+javascript实现WS即时通信 (1)无昵称群聊 (2)有昵称群聊 (3)私聊三种通信模型简述: (1)轮询: 客户端周期性不间断高频率的给服务器发送请求: 客户端请求--服务器响应--断开连接,请求次数QPS比较频繁,对客户端和服务器的配置要求..._geventwebsocket
文章浏览阅读920次。//系统//CentOS Linux release 7.4.1708 (Core) 3.10.0-693.2.2.el7.x86_64//关闭SELinux,机器需要重启# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config//验证# grep SELINUX=disabled /etc/selinux/..._python 2 easy_install
文章浏览阅读3.4k次,点赞3次,收藏19次。模块与模块之间是可以交互的。例如,用pandas模块创建数据表格,再用xlwings模块将表格写入工作簿。具体代码如下:_xlwings pandas
文章浏览阅读1k次,点赞3次,收藏3次。再见,秋招!再战,春招!整个秋招,我领悟到:实力很重要运气有时候这东西说不好原罪其实还是:自己太菜!回顾这几年在学校的时候,做了两年 Web 开发,接学校项目,接外包,靠着两手 PHP 和 jQuery 自以为很牛逼可以混迹江湖,大二开始,接触机器学习,那时候在学校还没那么火,然后跑去找学长请教怎么学,研究怎么做 Kaggle/天池,买了很多很多书,刷西瓜书、刷了好几遍统计学习方..._再战秋招可行吗
文章浏览阅读4.1k次,点赞7次,收藏15次。反复修改了几次,提供一份版本最新最完美也是我毕业论文用到的一个模板。文档类zzuThesis.cls\ProvidesClass{zzuThesis}[2017/06/02 v3.0, by Lu Song]%版本3.0%修复了题目不能自动换行的问题%添加了中文注释%去掉一些重复的命令%修复了一些警告和一些小bug%去掉节前的S编号,修改页眉%把目录放在前面%将英文摘要放入目录%_`\llll