第五章 字符串专题 ---------------- 5.9 题解:去掉字符串中连接出现的k次的0

【信息科学与工程学】【数据科学】数据科学领域 第六篇 算法设计 01 算法设计 阅读详情

题目:

移除字符串中连续出现的K个0。

用count记录连续出现的0的个数N,一旦下一个不是0, 输出N%K个0。

一、C++代码:

#include <iostream>
#include<cstring>
using namespace std; 

string remove(string src,int k)
{
	int len=src.length();
	char arr[len];
	strcpy(arr,src.data());
	
	int count=0;
	string ans;
	for(int i=0;i<len;i++)
	{
		char c=arr[i];
		if(c=='0')
		{
			count++;
		}
		else
		{
			for(int j=0;j<count%k;j++)
			{
				ans+="0";
			}
			ans+=c;
			count=0;
		}
	}
	for(int j=0;j<count%k;j++)
	{
		ans+="0";
	}
	return ans;
} 
 
int main()
{
	string s="10000200";
	int k=3;
	cout<<remove(s,k);
	return 0;
}

二、结果:

 

三、JAVA代码:

/**
 * 移除字符串中连续出现的k个0
 * @author xiaow
 * 
 * 可以用扫描字符数组的解法,但是用正则表达式更为快捷
 *
 */
public class RemoveKZeros {

    static String remove_1(String src,int k){
        String regex = "0{"+k+"}";
        return src.replaceAll(regex, "");
    }
    
    static String remove_2(String src,int k){
        char[]arr = src.toCharArray();
        int count = 0;
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < arr.length; i++) {
            char c = arr[i];
            if (c == '0') {
                count++;
            }else {
                for (int j = 0; j < count%k; j++) {
                    sb.append('0');
                }
                sb.append(c);
                count = 0;
            }
        }
        for (int j = 0; j < count%k; j++) {
            sb.append('0');
        }
        return sb.toString();
    }
    
    public static void main(String[] args) {
        System.out.println(remove_1("10000200", 3));
        System.out.println(remove_2("10000200", 4));
        /*
         * 输出:10200
         *      1200
         */
    }

}

参考:https://www.cnblogs.com/xiaoyh/p/10306494.html

QT+QTimer+QThread实现线程内的定时任务并且和主线程进行交互 在制作qt软件时,我们经常会用到qtimer定时器以及将其在非主线程中进行使用,甚至有的时候还需要和主线程进行交互。我总结了两种用法,仅供参考。以上即为QTimer和QThread联合使用的学习记录。 阅读详情

相关推荐

MATLAB新手也能懂:用MATPOWER 8.0b搞定电力系统潮流计算(附case9实战代码)

本文详细介绍了如何使用MATPOWER 8.0b在MATLAB中进行电力系统潮流计算,特别适合新手入门。通过case9实战案例,讲解了从安装配置到运行牛顿-拉夫逊法潮流计算的全过程,包括结果分析和常见问题处理,帮助读者快速掌握这一电力系统分析的核心技能。

weixin_26757925的博客 381

去掉字符串中连接出现的k次的0《算法很美》

去掉字符串中连接出现的k次的0 思路: 先将字符串转成字符数组,遍历每个字符,每次遍历先将字符 char c = arr[i];,然后判断是否为0,如果为0则count++,否则就查看你是否出现k次,如果出现过k次就把k次移除只留余数装进sb中,不然就装进字符且重置count=0。记住还要考虑最后的count问题! import org.assertj.core.api.Assertions; /* * 移除字符串中连续出现的K个0 * * 可以用扫描字符数组的解法,但是用正则表达式更为快捷 * */

罗彬桦的博客 257

解决[WARN] : Controller Spawner couldn‘t find the expected controller_manager ROS interface.思路

rrbot例程ros_control配置问题的解决思路 本人刚入门ROS机器人开发,在学习rrbot例程出现了control_manager无法启动的bug。 在启动rrbot_control.launch的时候,出现下列warning: [WARN] [1594362016.372059]: Controller Spawner couldn't find the expected controller_manager ROS interface. 之后再按教程的步骤 rosservice call /

qq_40299650的博客 1万+

hdu 6194 string string string —— 后缀数组找出现k次的串

Problem Description Uncle Mao is a wonderful ACMER. One day he met an easy problem, but Uncle Mao was so lazy that he left the problem to you. I hope you can give him a solution. Given a string s, we ...

天翼之城的博客 346

一本集成电路静态时序设计经典之作(可下载)

本书全面深入探讨集成电路设计中关键技术的专著,涵盖了从基础知识到高级应用的各个方面。本书详细介绍了集成电路的发展历程、**静态时序分析的重要性、基本时序模型、时序信息库文件的构建、时序约束的设置、串扰噪声的影响及其控制方法**,并通过实战案例展示了如何进行有效的时序分析和优化。

nuoweishizi的博客 852

ubuntu18.04安装gtsam过程及报错error: invalid initialization of reference of type ‘const std::vector<bool>&’

这里建议从这个链接下,不要从官网下,可能会有版本冲突 2.安装依赖 3.编译 报错: 1. error: invalid initialization of reference of type ‘const std::vector&’ from expression of type ‘const std::vector’ 124 | const std::vector& mask() const { retur...

qq_35102059的博客 2913

几种压缩算法原理介绍

1.   RLERLE又叫Run Length Encoding,是一个针对无损压缩的非常简单的算法。它用重复字节和重复的次数来简单描述来代替重复的字节。尽管简单并且对于通常的压缩非常低效,但它有的时候却非常有用(例如,JPEG就使用它)。1.1. 原理图2.1显示了一个如何使用RLE算法来对一个数据流编码的例子,其中出现六次的符号‘93’已经用3个字节来代替:一个标记字节(‘0’在本例中)重复的

书山有路勤为径,学海无涯苦作舟 1万+

TRAE智能体开发:TRAE概述

TRAE(/treɪ/)深度融合 AI 能力,是一名能够理解需求、调用工具并独立完成各类开发任务的“AI 开发工程师”,帮助你高效推进每一个项目。

王国平的博客 1271

去掉字符串连续出现的k次的0

题目:移除字符串中连续出现的k个0。 例如: String StringA = "A00000B00",k=3 返回 "A00B00"。 import javax.sound.sampled.EnumControl; import java.sql.Array; import java.util.*; // 1:无需package // 2: 类名必须Main, 不可修改 public class Main { public static void main(String[] arg.

qq_61185410的博客 288

【大数据技术干货】(还不懂数仓,数据中心?看这一篇就够了!)在实际的开发生产中,让你了解企业级数据中心整体架构(DB+ETL+ODS+DW+DM)的各个层次的过程详解,数据联系及功能区分

一 企业级数据中心架构 数据仓库的整体架构,各个系统的元数据通过ETL同步到操作性数据仓库ODS中,对ODS数据进行面向主题域建模形成DW(数据仓库),DM是针对某一个业务领域建立模型,具体用户(决策层)查看DM生成的报表。 二 DB 三 ETL(Extract-Transform-Load) ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。 ETL是BI项目重要的一个环节。 通常情况下,在BI项目中ET

liuchunhang的博客 1290

以 Joule 驱动的生成式开发:把需求文档直接变成可运行的 SAP 应用

摘要:SAP BTP的AI助手Joule正在改变开发方式,支持从自然语言描述自动生成数据模型、服务、UI及测试代码。在SAP Business Application Studio中,Joule能根据业务需求生成结构化代码,并提供代码补全、重构、解释等功能。开发者需注意避免上传敏感数据,并对AI生成的代码进行人工审核。Joule特别针对ABAP开发进行了优化,提供符合SAP规范的代码建议,帮助迁移遗留系统。此外,它还能快速生成CAP项目原型,但所有AI生成内容都需经过严格测试验证。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 343

浙大PTA-Python题库 编程题第三章(3-1~3-22)题解

其他各章题解链接如下 浙大PTA-Python题库 编程题第一章(1-1~1-3)题解 https://blog.csdn.net/zimuzi2019/article/details/107020657 浙大PTA-Python题库编程题 第二章(2.1~2.14)题解 https://blog.csdn.net/zimuzi2019/article/details/106984549 浙大PTA-Python题库 编程题第三章(3-1~3-22)题解 https://blog.csdn.net/zimu

zimuzi2019的博客 7万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【剑指offer】(第 2 版)Java 题解

【剑指offer】(第 2 版)Java 题解 第一章 面试的流程 略... 第二章 面试需要的基础知识 面试题 1. 赋值运算符函数 面试题 2. 实现 Singleton 模式 Solution 2 面试题 3. 数组中重复的数字 题目一:找出数组中重复的数字。 题目二:不修改数组找出重复的数字。 面试题 4. 二维数组中的查找 Solution 4 面试题 5. 替换空格 Solution ...

weixin_30873847的博客 206

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

《代码随想录1-7章》二刷题解及心得体会

0 前言   昨天结束了《代码随想录》一刷(只看不上机操作,目的是对算法建立初步的认识),历时一个多月。在第一遍阅读之后,有许多不理解的地方,在书中用问号标识。第二遍阅读本书目的就是想通过上机训练将之前的疑惑解开。另外,本书题解和内容仍有一小部分错误,希望在此更正。 1 第一章 面试要知己知彼   本章主要介绍面试流程、如何写简历及代码规范。本书中的C++代码严格按照Google C++编程规范:     1.操作符左右一定有空格。     2.分隔符(,和;)的前一位没有空格,后一位有空格。     3.

qq_44732492的博客 3505

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【Fifty Project - D22】

5.1的记录忘了发了~

qq_44267363的博客 654

剑指offer的python解答合集(更新完毕)

被疫情困在家里,没事刷刷剑指offer的题目,这里写一个题解合集,还没更完 20190129:搞定15道 文章目录面试题3:数组中重复的数字面试题4:二维数组中查找面试题5:替换空格面试题6:从尾到头打印链表面试题7:重建二叉树面试题8:二叉树的下一个节点面试题9:用两个栈实现队列面试题10:斐波那契数列面试题11:旋转数组的最小数字面试题12:矩阵中的路径面试题13:机器人的运动范围面试题14:...

yjyjjyjy1231的博客 944

人工智能世界观(认知篇)

本文系统梳理了人工智能(AI)的基础知识体系,重点解析了大模型(LLM)的核心原理、技术演进及应用边界。主要内容包括: AI基础认知:从规则驱动到数据驱动的范式转变,强调AI=数据+算法+算力的技术本质,区分了弱AI与通用AI(AGI)的能力差异。 技术发展史:回顾AI七十年发展,从符号主义、专家系统到深度学习的五次技术浪潮,重点分析Transformer架构如何推动大模型革命。 大模型原理:详解LLM的三大支柱(参数量/数据量/算力),揭示自回归生成和注意力机制的工作逻辑,对比GPT与BERT的技术路线差

轻舟已过万重山 556

字符串压缩算法---解压缩

有一种简单的字符串压缩算法,对于字符串中连续出现的同一个字符用该字符加上连续出现次数来表示,连续出现次数小于3时不压缩。例如,字符串aaaaabbbabaaaaaaaaaaaaabbbb,可压缩为a5b3aba13b4.设计一个程序,将采用该压缩方法得到的字符串解压缩还原出原字符串并输出.输入示例:a5b3aba13b4输出示例:aaaaabbbabaaaaaaaaaaaaabbbb#pragma...

Solar's Blog 1万+

去掉字符串中首次连续出现k个0的子串。

去掉字符串中首次连续出现k个0的子串。比如当s="A00B",k=2时,此时应该输出AB,当s="A0000B000",k=3的时候,应该返回A0000B而不是A0B000。这种字符串的处理问题一定要注意下标是否越界。 代码如下: public class Test { public static void main(String[] args) { // TODO 自动生成的方法

qq_34309663的博客 484

【JZOJ】【递归】解压字符串

DescriptionDescriptionDescription 一个字符串 比如 999999 总共有6个9 可以压缩成 6(9) 现在要你解压它 还有比如2(12(2)) 括号套括号同理 解压后是 122122 现在要你求解压后的字符串长度 InputInputInput 一行,一个压缩后的字符串 OutputOutputOutput 一行,解压后的字符串长度 $SampleInput#1 ...

Maple的博客 322

LeetCode: 394. 字符串解码 - Python

解压字符串 问题描述: 现在有一种字符串的压缩规则是这样的:k[string],表示string连续出现k 次(0 &lt; k &lt; 1000)。 比如:s = "ef3[a]2[bc]gh", 解压后的字符串为:"efaaabcbcgh",这种压缩也可以相互嵌套:s = "3[a2[c]]", 解压后为:"accaccacc"。 输入一个压缩的字符串s,请输出解压后的字符串。 输入都是严...

Growth Diary 3611

Java 去掉字符串中连续出现K次的0

问题描述:给定一个字符串,去掉字符串中连续出现k次的0;例如:100001 K=3;得到101。 解一:如果K是常量,这题就非常简单,相当于删除字符串中指定的子串。可以用子串为参照进行切割。然后再将分割后的字符串进行链接起来。下面以删除子串“000”为例。 代码如下: public class 去掉连续K次出现的0 { public static void main(String[] a...

覃会程的博客 1501

K - Minimize the string

You are given n strings s1, s2, ..., sn. Each of these strings consists only of letters 'a' and 'b', and the length of each string can be at most 2. In other words, the only allowed strings are "a", "...

chen_zan_yu_的博客 560

字符串消除问题(所有解法集合)

给定一个字符串,仅由a,b,c 3种小写字母组成。当出现连续两个不同的字母时,你可以用另外一个字母替换它,如 有ab或ba连续出现,你把它们替换为字母c; 有ac或ca连续出现时,你可以把它们替换为字母b; 有bc或cb 连续出现时,你可以把它们替换为字母a。 你可以不断反复按照这个规则进行替换,你的目标是使得最终结果所得到的字符串尽可能短,求最终结果的最短长度。输入:字符串。长度不超过200,仅

zhangjieangela的专栏 1681

第二章 :查找与排序---------递归、查找与排序补充

递归设计经验: ①、找重复(子问题) ②、找重复中的变化量-&gt;参数 ③、找参数变化趋势-&gt;设计出口 求n的阶乘: *找重复:n*(n-1)的阶乘,求n-1的阶乘是原问题的重复(规模更小)----子问题 *找变化:变化的量应该作为参数 *找边界 :出口 #include&lt;iostream&gt; using namespace std; /* **求n的...

Curtis’Blog 850
上一篇: 第五章 字符串专题 ---------------- 5.8 题解:将字符串中按单词翻转
下一篇: 第五章 字符串专题 ---------------- 5.10 题解:神奇的回文串
Estrellas_
博客等级 码龄9年 273粉丝 233原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值