【java|golang】1758. 生成交替二进制字符串的最少操作数

news2025/1/12 22:50:51

给你一个仅由字符 ‘0’ 和 ‘1’ 组成的字符串 s 。一步操作中,你可以将任一 ‘0’ 变成 ‘1’ ,或者将 ‘1’ 变成 ‘0’ 。

交替字符串 定义为:如果字符串中不存在相邻两个字符相等的情况,那么该字符串就是交替字符串。例如,字符串 “010” 是交替字符串,而字符串 “0100” 不是。

返回使 s 变成 交替字符串 所需的 最少 操作数。

示例 1:

输入:s = “0100”
输出:1
解释:如果将最后一个字符变为 ‘1’ ,s 就变成 “0101” ,即符合交替字符串定义。
示例 2:

输入:s = “10”
输出:0
解释:s 已经是交替字符串。
示例 3:

输入:s = “1111”
输出:2
解释:需要 2 步操作得到 “0101” 或 “1010” 。

提示:

1 <= s.length <= 104
s[i] 是 ‘0’ 或 ‘1’

思路:和01或10两种情况比较

public static int minOperations(String s) {
        char temp='0';
        int i0=0,i1=0;
        char[] chars = s.toCharArray();
        for (char aChar : chars) {
            if(aChar==temp){
                i0++;
            }else {
                i1++;
            }
            temp= (char) (temp^1);
        }
        return Math.min(i0,i1);
    }

在这里插入图片描述

func minOperations(s string) int {
    i0,i1:=0,0
    temp:='0'
	for _, v := range s {
		if v==temp {
			i0++
		}else {
			i1++
		}
		temp=temp^1
	}
	if i0>i1 {
		return i1
	}
	return i0
}

在这里插入图片描述

func minOperations(s string) int {
    i0,i1:=0,0
    var temp int32 =48
	for _, v := range s {
		fmt.Printf("%T,%v\n",v,v)
		fmt.Printf("%T,%v\n",temp,v)
		if v==temp {
			i0++
		}else {
			i1++
		}
		temp=temp^1
	}
	if i0>i1 {
		return i1
	}
	return i0
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/45331.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

云边缘网关TG453

5G云边缘网关TG453&#xff0c;广泛应用于工控物联网等场景&#xff0c;具备组网、数据采集、协议解析、无线通信、远程控制能力。全网通5G网络&#xff0c;同时支持边缘计算&#xff0c;满足大接入量数据处理和及时反馈的低延时任务应用。 5G云边缘网关TG453功能 部署在本地现…

Java学习之继承练习题

目录 第一题 代码 输出流程分析 运行结果 考察知识点 第二题 代码 流程分析 运行结果 第三题 题目要求 我的代码 代码改进 第一题 代码 package com.hspedu.extends_.exercise;public class ExtendsExercise01 {public static void main(String[] args) {B b new …

Mybatis Plus 多租户id使用

本文就不多逼逼&#xff0c;直接进入正题。 什么是多租户 多租户技术&#xff08;Multi-TenancyTechnology&#xff09;又称多重租赁技术&#xff0c;简称SaaS&#xff0c;是一种软件架构技术&#xff0c;是实现如何在多用户环境下 &#xff08;此处的多用户一般是面向企业用…

SpringCloud服务配置介绍Nacos实现管理配置

目录 一、服务配置中心介绍 二、Nacos config入门 三、Nacos config深入 四、Nacos的几个概念 一、服务配置中心介绍 首先我们来看一下,微服务架构下关于配置文件的一些问题&#xff1a; 配置文件相对分散。在一个微服务架构下&#xff0c;配置文件会随着微服务的增多变的…

uniapp 智能安装(自动升级)插件 Ba-SmartUpgrade

简介&#xff08;下载地址&#xff09; Ba-SmartUpgrade 是一款用于智能安装&#xff08;自动升级&#xff09;的插件&#xff0c;无需用户的任何操作就可以自动安装程序。 说明 在app升级更新&#xff0c;覆盖安装时&#xff0c;系统会弹出授权提示弹窗&#xff0c;需要用户…

两种PDF密码都忘记了,怎么办?

PDF文件的两种密码&#xff1a;打开密码、编辑限制 两种密码加密PDF文件后的效果是不一样的&#xff1a; 设置了打开密码的PDF文件&#xff0c;是在打开文件的时候需要输入密码&#xff0c;输入了正确的PDF密码&#xff0c;进入到文件之后&#xff0c;就一些都正常了&#xf…

Pr:编辑字幕

对于添加好的字幕&#xff0c;可在文本面板中的“字幕”选项卡、时间轴面板或节目面板上进行编辑。需要时&#xff0c;可在基本图形面板中改变字幕的样式。“字幕”选项卡中显示了当前活动字幕轨道上的各个字幕分段的编号、时间码范围、文本内容等。单击左下角的“ABC”按钮可改…

Word文档的两种密码忘记了,怎么办?

Word文档的密码也有两种&#xff1a;一种是打开密码&#xff0c;一种是编辑限制 两种密码加密后的效果也是不一样的&#xff1a; 设置了打开密码的Word文档&#xff0c;是在打开文件的时候需要输入密码&#xff0c;保护文件内容不被其他人看到。当我们输入了正确的Word密码&a…

【元胞自动机】元胞自动机短消息网络病毒传播仿真【含Matlab源码 1289期】

⛄一、元胞自动机简介 1 元胞自动机发展历程 最初的元胞自动机是由冯 诺依曼在 1950 年代为模拟生物 细胞的自我复制而提出的. 但是并未受到学术界重视. 1970 年, 剑桥大学的约翰 何顿 康威设计了一个电脑游戏 “生命游戏” 后, 元胞自动机才吸引了科学家们的注意. 1983 年…

第一个maven项目(idea)

配置Maven 确保idea与你要使用的maven版本不冲突&#xff0c;否则使用idea内置即可。 手工创建Java项目 在test目录下&#xff0c;新建resources&#xff0c;如果不是测试资源根&#xff0c;右键将目录标记为&#xff1a; 原型创建Java项目 原型创建Web项目 插件 配置tomcat插…

数据结构与算法之《单链表》详解

标题&#xff1a;单链表的思路及代码实现 作者&#xff1a;Ggggggtm 寄语&#xff1a;与其忙着诉苦&#xff0c;不如低头赶路&#xff0c;奋路前行&#xff0c;终将遇到一番好风景 文章目录&#xff1a; 引入 一、链表的概念及结构 1.1 链表的概念 1.2 链表的结构 二、链表的思…

单文件组件:dom高亮插件、在父组件中引入子组件、App.vue代码代码写法

输入<template>等dom为什么会有高亮显示&#xff1f; 下载Vetur插件&#xff1a; 模板会自动帮你导出&#xff0c;但是js文件不会&#xff0c;需要你手动导出&#xff0c;启动的服务器&#xff0c;只会热更新&#xff0c;如果想要刷新整个页面就自己手动刷新&#xff1b…

2022.11.29总结

今天写了条件查询 虽然思路上还说是比较顺&#xff0c;但是还是写了一晚上&#xff0c;因为老是在细节上出现bug&#xff0c;改了好久&#xff0c;踩了好几个坑。 首先大概是因为组件不是确定的&#xff0c;我把ref属性绑定在router-view上&#xff0c;导致我获取不到条件选择…

[附源码]Python计算机毕业设计SSM基于Java的校园二手平台交易系统(程序+LW)

环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 Maven管理等…

SpringBoot+html+vue模板开发备忘录

除了对某个表基本的增删改查以外&#xff0c;可能需要额外的增加操作&#xff0c;这里是通过按钮来实现的 1、新增一个测试按钮 <el-button type"primary" class"butT" click"test()">测试</el-button> 2、这个按钮绑定一个方法t…

CFDP:聚类算法

Clustering by Fast Search and Find of Density Peaks(CFDP) - 发表于2014 science期刊 聚类算法&#xff0c;作为机器学习里常用的一种无监督方法&#xff0c;一直以来都受到很大的关注。聚类算法&#xff0c;是希望把同一类的样本或者样本聚到一起&#xff0c;比如说常见的…

BIRT 横向分栏

【问题】 I have a table which will displays User ids in one column. I want to display that column as two columns Ex. In First Row, First user id in Column 1 and Second user id in Column2, In Second Row, second user id in Column 1 and third user id in Co…

教育机构客户管理系统功能方案详解!

前言&#xff1a; 教育机构客户管理系统怎么做&#xff1f;哪个好&#xff1f;还在为客户流失而烦恼的你&#xff0c;一定很困恼&#xff0c;别人是怎么留住客户的呢&#xff1f;今天就来告诉你。 随着我国产业结构升级&#xff0c;在政策顶层推动和经济主体需求转变的共同影…

nlp工具库spacy

文章目录spacy能做什么如何安装案例 分词功能spacy是一个辅助自然语言处理的工具库。 spacy能做什么 它集成了各种实用的句子分析功能&#xff0c;包括分词、词性分析、词性还原等等&#xff0c;所有功能特性可参考官网 spacy-101的features一章&#xff0c;有Tokenization、…

ROS MarkerArray的几种常见用法

ros使用过程中&#xff0c;经常会用到rviz可视化各种数据。而在rviz中&#xff0c;marker与markerarray是常用的一种可视化工具&#xff0c;最近也用到过几次了&#xff0c;这里随手记录一下。 1、makerarray画线 在marker中常见的就是表示两点之间的连线&#xff0c;而marke…