KY228 找位置(用Java实现)
描述
对给定的一个字符串,找出有重复的字符,并给出其位置,如:abcaaAB12ab12 输出:a,1;a,4;a,5;a,10,b,2;b,11,1,8;1,12, 2,9;2,13。
输入描述:
输入包括一个由字母和数字组成的字符串,其长度不超过100。
输出描述:
可能有多组测试数据,对于每组数据, 按照样例输出的格式将字符出现的位置标出。 1、下标从0开始。 2、相同的字母在一行表示出其出现过的位置。
示例1
输入:
abcaaAB12ab12
输出:
a:0,a:3,a:4,a:9 b:1,b:10 1:7,1:11 2:8,2:12
代码如下:
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;/** 找位置*/
public class FindPosition {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);while(scanner.hasNext()) {String str = scanner.next();String[] strs = new String[str.length()];//记录字符以及对应出现的次数Map<String, Integer> myMap = new LinkedHashMap<String, Integer>();for (int i = 0; i < strs.length; i++) {strs[i] = Character.toString(str.charAt(i));if (myMap.containsKey(strs[i])) {myMap.put(strs[i], myMap.get(strs[i]) + 1);}else {myMap.put(strs[i], 1);}}//将出现次数只有一次的删除List<String> myList = new ArrayList<String>();for(Map.Entry<String, Integer> entry : myMap.entrySet()) {if (entry.getValue() == 1) {//不能直接在这里删除myList.add(entry.getKey());}}for(int i = 0;i < myList.size() ; i++) {myMap.remove(myList.get(i));}for(Map.Entry<String, Integer> entry : myMap.entrySet()) {String s = entry.getKey();//记录第几次出现,最后一次的最后没有","int sum = 1;for (int j = 0; j < strs.length; j++) {if(strs[j].equals(s)) {if (sum < entry.getValue()) {System.out.print(s+":"+j+",");sum++;}else {System.out.print(s+":"+j);}}}System.out.println();}}}
}
相关文章:
KY228 找位置(用Java实现)
描述 对给定的一个字符串,找出有重复的字符,并给出其位置,如:abcaaAB12ab12 输出:a,1;a,4;a,5;a,10,b,2&…...
物联网边缘网关有哪些优势?-天拓四方
随着物联网技术的快速发展,越来越多的设备接入网络,数据交互日益频繁,对数据处理和传输的要求也越来越高。在这样的背景下,物联网边缘网关应运而生,以其低延迟、减少带宽消耗、提高数据质量和安全性等优势,…...
【C++】6-2 交换函数2 分数 10
6-2 交换函数2 分数 10 全屏浏览 切换布局 作者 刘利 单位 惠州学院 根据题目需求,编写一个交换函数Swap。 裁判测试程序样例: #include <iostream> using namespace std; class pen{private:string brand;string color;double price;publi…...
kafka 01
01....
Linux离线安装Docker-Oracle_11g
拉取oracle11g镜像 docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g创建11g容器 docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g查看容器是否创建成功 docker ps -a导出oracle容器,查看…...
web前端3.19
一、属性选择器与伪类选择器 属性选择器:匹配那些具有特定属性或属性值的元素 <style>/* */input[type"password"] {background-color: aqua;}/* 具有某个属性的指定标签 */div[title] {background-color: pink;}/* 属性的值中包含某个值 */inpu…...
Rust 函数体内能定义数据类型或者做其他什么事情吗?
一、可以在函数体内定义数据类型吗? 在 Rust 中,你不能直接在函数体内定义新的数据类型(如结构体或枚举)。数据类型必须在模块或块的作用域内定义,这通常是在函数外部。然而,你可以在函数体内定义新的类型…...
flask_restful结合蓝图使用
在蓝图中,如果使用 Flask_RESTful , 创建 Api 对象的时候,传入蓝图对象即可,不再是传入 app 对象 /user/__init__.py from flask.blueprints import Blueprintuser_bp Blueprint(user,__name__)from user import views /user…...
干货分享之反射笔记
入门级笔记-反射 一、利用反射破泛型集合二、Student类三、获取构造器的演示和使用1.getConstructors只能获取当前运行时类的被public修饰的构造器2.getDeclaredConstructors:获取运行时类的全部修饰符的构造器3.获取指定的构造器3.1得到空构造器3.2得到两个参数的有参构造器&a…...
使用小皮【phpstudy】运行Vue+MySql项目
现在的情况是我扒到了一个开源的项目,现在想要实现一下前端对应的功能,后端是完备的,但是需要调用数据库将数据跑起来,这里可以使用到MySql数据库,这里我还发现了一个比较好用的软件小皮【phpStudy】 官网 一 安装软件…...
局部静态变量实现单例模式,线程安全(推荐使用)c++11
class Singleton{ public:~Singleton();static Singleton& getInstance(){static Singleton instance;return instance; } private:Singleton(); };原因是C 11标准中新增了一个特性叫Magic Static:如果变量在初始化时,并发线程同时进入到static声明语…...
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
目录 前言: 一、决策树思想 二、经典决策树算法 三、算法应用案列 基于Python 和 Scikit-learn 库实现决策树算法的简单示例代码,用于解决分类问题: 四、总结 算法 决策树算法应用: 决策树算法优缺点: 博主介绍&…...
Mybatis-Plus——09,代码自动生成器
代码自动生成器 一、先创建一个表二、创建一个类,配置代码生成器三、运行方法四、运行主方法,报错了。 一、先创建一个表 二、创建一个类,配置代码生成器 package com.gang;import com.baomidou.mybatisplus.annotation.DbType; import com.…...
Temu api接口 获取商品详情 数据采集
iDataRiver平台 https://www.idatariver.com/zh-cn/ 提供开箱即用的Temu电商数据采集API,供用户按需调用。 接口使用详情请参考Temu接口文档 接口列表 1. 获取商品详情 参数类型是否必填默认值示例值描述apikeystring是idr_***从控制台里复制apikeycountrystrin…...
安捷伦Agilent N1912A功率计
181/2461/8938产品概述: Keysight(原Agilent) N1912A P系列双通道功率计可提供峰值、峰均比、平均功率、上升时间、下降时间、最大功率值、最小功率值以及宽带信号的统计数据。 Keysight(原Agilent) N1912A P系列双通道功率计, 可提供峰值、峰均比、平均功率、上升…...
ES 进阶知识
索引Index 一个索引就是一个拥有几分相似特征的文档的集合。比如说,你可以有一个客户数据的索引,另一个产品目录的索引,还有一个订单数据的索引。一个索引由一个名字来标识(必须全部是小写字母),并且当我们…...
ChatGPT 对 ELT的理解
本文主要内容来自 ChatGPT 4.0 到底什么是 ETL?在数据库内部,把数据从 ODS 层加工成 DWD,再加工成 DWS,这个过程和 ETL 的关系是什么?带着这些问题,我问了一下 ChatGPT,总结如下。 数据在两个数…...
qt事件机制学习笔记
实现闹钟功能 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget), speecher(new QTextToSpeech(this)) //给语音播报者实例化空间 {ui->setupUi(this); }Widget::~Widget() {delete …...
网红电商主播培养体系招聘管理制度孵化方案
【干货资料持续更新,以防走丢】 网红电商主播培养体系招聘管理制度孵化方案 部分资料预览 资料部分是网络整理,仅供学习参考。 共120页可编辑(完整资料包含以下内容) 目录 主播团队组建方案 让好主播主动留下 1. 好主播选拔标准…...
Android获取经纬度的最佳实现方式
Android中获取定位信息的方式有很多种,系统自带的LocationManager,以及第三方厂商提供的一些定位sdk,都能帮助我们获取当前经纬度,但第三方厂商一般都需要申请相关的key,且调用量高时,还会产生资费问题。这…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...
华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...
Windows 下端口占用排查与释放全攻略
Windows 下端口占用排查与释放全攻略 在开发和运维过程中,经常会遇到端口被占用的问题(如 8080、3306 等常用端口)。本文将详细介绍如何通过命令行和图形化界面快速定位并释放被占用的端口,帮助你高效解决此类问题。 一、准…...
大数据驱动企业决策智能化的路径与实践
📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:数据驱动的企业竞争力重构 在这个瞬息万变的商业时代,“快者胜”的竞争逻辑愈发明显。企业如何在复杂环…...
