【算法千题案例】每日LeetCode打卡——78.字符串中的单词数_leetcode78题示例代码-程序员宅基地

技术标签: 算法千题案例  算法  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 个字符。

提示:

  • S 的长度可能很长,请按需分配大小。K 为正整数。
  • S 只包含字母数字(a-z,A-Z,0-9)以及破折号’-’
  • S 非空

C#方法:排序遍历

在这里插入图片描述

代码:

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%的用户

Java 方法:计数

思路解析
在这里插入图片描述

代码:

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 两种编程语言进行解题
  • 一些方法也是参考力扣大神写的,也是边学习边分享,再次感谢算法大佬们
  • 那今天的算法题分享到此结束啦,明天再见!
    请添加图片描述
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhangay1998/article/details/121341066

智能推荐

为什么交换机支持ipv6却不能配置?-程序员宅基地

文章浏览阅读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却不能配置?

用du命令查看文件夹大小_du -sh 单位-程序员宅基地

文章浏览阅读1w次。命令:du 用法 linux文件夹大小 du -sh ./ 查看当前目录大小du -sh * 查看当前目录下的文件夹大小du 命令用途概述磁盘使用。 语法du [ -a | -s ] [ -k ] [ -m ] [ -g ][ -l ] [ -r ] [ -x ] [ -H | -L_du -sh 单位

java+标签定位_Java + selenium 元素定位(3)之By TagName-程序员宅基地

文章浏览阅读779次。本篇介绍findElement接口中的By TagName方法。首先,要知道什么是tagname。之前我们使用F12开发者工具查看网页元素是,发现每行代码前都有、、、等等标签,这些标签就是tagname了。但是我们都可以看出来,像是、、这些常用的标签,在网页中出现的频率是很高的,如果我们使用tagname来定位元素,可能定位到的就不是我们预想的元素。所以一般配合findElements接口使用,查..._tagname定位

一套开源快速开发平台--若依(ruoyi)_若依是什么-程序员宅基地

文章浏览阅读1w次,点赞3次,收藏36次。简介:① 若依(ruoyi)是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。② 前端采用Vue、Element UI。③ 后端采用Spring Boot、Spring Security、Redis & Jwt。④ 权限认证使用Jwt,支持多终端认证系统。⑤ 支持加载动态权限菜单,多方式轻松权限控制。⑥ 高效率开发,使用代码生成器可以一键生成前后端代码。如何获取若依?若依是一套开源的项目,可以直接下载使用。从码云cope项目idea新建并打开项目导入S_若依是什么

MySQL 5.7安装教程_mysql5.7.41安装教程-程序员宅基地

文章浏览阅读4.6k次,点赞3次,收藏13次。MySQL5.7安装教程。_mysql5.7.41安装教程

个人技术博客的选择:CSDN、博客园、简书、知乎专栏、Github、新浪、个人建站等?_github和csdn的区别-程序员宅基地

文章浏览阅读1w次,点赞19次,收藏47次。个人技术博客的选择:CSDN、博客园、简书、个人建站、知乎专栏、Github Page、新浪?引言:为什么写博客一晃也干了十多年的技术了,也经常穿梭于各种技术论坛之中,得益于各位大V博主的无私奉献。我也想效仿各位博主前辈,一方面是自己知识的总结,一方面也是知识的分享(幼儿园老师不是说过么,要学会分享~~)。最近终于有点时间了,然后发现现在博客平台很多,突然不知从何下手了。于是在网上一顿狂搜,..._github和csdn的区别

随便推点

python操作redis使用pipeline批量读写_python redis pipeline批量取值-程序员宅基地

文章浏览阅读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批量取值

flask之gevent-websocket的IO多路复用长连接通信-程序员宅基地

文章浏览阅读2.5k次。本节目录:(一)笔记总结;(二)gevent-websocket+flask+javascript实现WS即时通信  (1)无昵称群聊  (2)有昵称群聊  (3)私聊三种通信模型简述: (1)轮询: 客户端周期性不间断高频率的给服务器发送请求: 客户端请求--服务器响应--断开连接,请求次数QPS比较频繁,对客户端和服务器的配置要求..._geventwebsocket

Python 2安装pip和easy_install_python 2 easy_install-程序员宅基地

文章浏览阅读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

1 python数据分析基础——xlwings模块与pandas模块的交互_xlwings pandas-程序员宅基地

文章浏览阅读3.4k次,点赞3次,收藏19次。模块与模块之间是可以交互的。例如,用pandas模块创建数据表格,再用xlwings模块将表格写入工作簿。具体代码如下:_xlwings pandas

再见,秋招!再战,春招!_再战秋招可行吗-程序员宅基地

文章浏览阅读1k次,点赞3次,收藏3次。再见,秋招!再战,春招!整个秋招,我领悟到:实力很重要运气有时候这东西说不好原罪其实还是:自己太菜!回顾这几年在学校的时候,做了两年 Web 开发,接学校项目,接外包,靠着两手 PHP 和 jQuery 自以为很牛逼可以混迹江湖,大二开始,接触机器学习,那时候在学校还没那么火,然后跑去找学长请教怎么学,研究怎么做 Kaggle/天池,买了很多很多书,刷西瓜书、刷了好几遍统计学习方..._再战秋招可行吗

郑州大学本科生毕业论文latex模板_`\llll-程序员宅基地

文章浏览阅读4.1k次,点赞7次,收藏15次。反复修改了几次,提供一份版本最新最完美也是我毕业论文用到的一个模板。文档类zzuThesis.cls\ProvidesClass{zzuThesis}[2017/06/02 v3.0, by Lu Song]%版本3.0%修复了题目不能自动换行的问题%添加了中文注释%去掉一些重复的命令%修复了一些警告和一些小bug%去掉节前的S编号,修改页眉%把目录放在前面%将英文摘要放入目录%_`\llll

推荐文章

热门文章

相关标签