HDU1020--编码问题

试题描述

  • 问题详情如下图所示:
  • 要求:java实现数据结构知识
    在这里插入图片描述

参考代码

  • 比较垃圾,在别人基础上改的,懒得重构,,,仅供参考
import java.util.Scanner;public class HDU1020StringEncoding {public int row;//行数Tpublic char[][] data;//数据容器public char[] rowData = new char[20000];// 结构初始化构造public HDU1020StringEncoding(int row) {this.row = row;this.data = new char[row][10000];}// 载入数据,读取并存储public void loading( ) {for (int i = 0; i < this.row; i++) {Scanner scanner = new Scanner(System.in);String rowStr = scanner.nextLine();//第i行字符串int length = rowStr.length();//字符串分割for (int j = 0; j < length; j++) {char c = rowStr.charAt(j);this.data[i][j] = c;//入库}}}// 逻辑计算,并输出数据public void computed( ) {for (int i = 0; i < this.row; i++) {char[] chars = this.data[i];for (int j = 0; j < chars.length; j++) {char c = chars[j];if (c == '\0') {break;}if(checkHave(c, j, chars)){continue;}int number = computedNumber(c, chars);setRowData(number, c);}//第j行计算完毕for (char rowDatum : this.rowData) {if (rowDatum == '\0') {break;}System.out.print(rowDatum);}//换行System.out.print("\n");this.rowData = new char[20000];}}public boolean checkHave(char c, int index, char[] arr) {for (int i = 0; i < index; i++) {if (arr[i] == c) {return true;}}return false;}//统计数目public int computedNumber(char c, char[] ar) {int size = 0;for (char c1 : ar) {if (c1 == c) {size++;}if (c1 == '\0') {   // 判断字符数组是否结束break;}}return size;}public void setRowData(int number, char c) {if (number == 0) {return;}if(number == 1) {   // 子串长度为1,不输出数字for (int i = 0; ; i++) {if (this.rowData[i] != '\0') {continue;}this.rowData[i] = c;break;}}if (number>1) {   // 子串长度不为1,增加数字到字符数组for (int i = 0; ; i++) {if (this.rowData[i] != '\0') {   // 字符数组末尾判断continue;}String str = String.valueOf(number);int len = str.length();for(int j=i; j-i<len; j++) {this.rowData[j] = str.charAt(j-i);}this.rowData[i+len] = c;break;}}}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int row = scanner.nextInt();HDU1020StringEncoding hduse = new HDU1020StringEncoding(row);hduse.loading();hduse.computed();}
}
  • 测试效果
    在这里插入图片描述 在这里插入图片描述

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

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

相关文章

虚拟机安装银河麒麟

背景 由于Centos将于2024-06-30结束维护【脱保】&#xff0c;届时会存在Bug无人修复及功能无人开发等问题&#xff0c;所以要赶在这个节点前完成操作系统升级。可选的就是RedHat、Ubuntu以及国产信创【中标麒麟、银河麒麟、统信等】&#xff0c;或者使用云上操作系统【例如租阿…

40V耐压5A同步整流DCDC降压恒压芯片 高效率 外围小

同步整流恒压芯片是一种电源管理芯片&#xff0c;它能够在不同电压输入条件下保持输出电压恒定。这种芯片广泛应用于各种电子设备中&#xff0c;如通讯设备、液晶显示器、上网本、机顶盒等。 同步整流恒压芯片的工作原理是利用开关稳压器在输入电压和输出电压之间进行能量传递&…

GraphQL入门教程:构建更高效的APIs

GraphQL入门教程&#xff1a;构建更高效的APIs GraphQL是一个用于API的查询语言&#xff0c;由Facebook于2015年公开发布。它允许客户端精确地指定它们需要从API获取哪些数据&#xff0c;从而使数据交换更加高效和强大。与传统的REST API相比&#xff0c;GraphQL提供了更加灵活…

问答系统开发:基于深度学习的文本理解与生成

目录 1.前言 2.问答系统架构与流程 2.2.架构概述 2.3.流程描述 3.使用Transformer模型处理问答任务 3.1.BERT在问答任务中的应用 4.实现简单的交互式问答系统 5.总结 1.前言 本文旨在详细介绍问答系统的架构与流程&#xff0c;以及如何利用Transformer模型&#xff08;…

【笔记】通过码云Gitee获取OpenHarmony源码

Note&#xff1a;下面包含操作过程和问题解决&#xff08;首次安装Ubuntu&#xff0c;环境未完善&#xff09;&#xff0c;没有遇到问题可以直接跳过问题part了&#xff0c;小白也能完成配置下载。 前置准备&#xff08;Git环境账号&#xff09; &#xff08;一&#xff09;安…

做抖店没有产品货源?怎么玩?筛选货源的方法你需要了解清楚!

大家好&#xff0c;我是电商小布。 有很多的新手朋友们在玩抖店的时候&#xff0c;遇到的第一个问题就是自己手里没有产品在。 没有产品货源&#xff0c;也就没办法上架店铺&#xff0c;更别提交易工作了。 那么在这种情况下&#xff0c;该怎么来玩呢&#xff1f; 既然我们…

抖音降权限流后怎么办?可以考虑这样自查!

在抖音运营过程中&#xff0c;可能会遇到账号被降权限流的情况。面对这种情况&#xff0c;我们可以从以下几个方面进行自查&#xff0c;以找出问题所在并采取相应措施。 1 账号安全检查 包括敏感操作自查和违规操作检查。在敏感操作自查方面&#xff0c;需要回顾账号的历史操…

设计模式——行为型——责任链模式Chain Of Responsibility

请求类 public class ApproverRequest {private int type;//请求批准的类型private float price;//请求的金额private int id;//请求的编号 } 审批人抽象类 public abstract class ApproverPerson {protected ApproverPerson next;protected String name;//审批过程public a…

Debian/Ubuntu安装ping和netstat命令

sudo apt-get install net-tools#如果需要ping的话&#xff0c;安装如下软件 sudo apt-get install iputils-ping Debian/Ubuntu无netstat命令解决方案 Messay

python基础知识5——时间的处理和转换

python程序能用很多方式处理日期和时间&#xff0c;转换日期格式是一个常见的功能。 1、time模块 1.1、获取当前时间戳(unix时间戳)import time tick time.time() print(tick)1.2、# 获取时间元组import time t time.localtime() # 可传入unix时间戳进行转换 print(t)1.3、…

跨境运营必看:TikTok账号防封指南

多人在使用TikTok的过程中都会遇到一些问题&#xff0c;比如为什么TikTok没有浏览量&#xff1f;事实上&#xff0c;这很可能是因为你的账号已被禁止。但为什么它会被封呢&#xff1f;你怎样才能解决它&#xff1f; 一、TikTok账号为什么被封&#xff1f; 1、什么是 TikTok 影…

【隐私计算实训营008——SCQL】

1.SCQL使用/集成最佳实践 目前SCQL只开放API供用户使用/集成 使用SCDBClient上手体验可以基于SCQL API开发封装白屏产品&#xff0c;或集成到业务链路中 1.1 部署系统 环境配置&#xff1a; 机器配置&#xff1a;CPU/MEM最低8C16G机构之间的网络互通 镜像&#xff1a;secret…

记一个Unity的异常问题

今天同事给我反馈了一个Unity使用ThreadStatic的问题&#xff0c;问题如下&#xff1a; [ThreadStatic]private static Dictionary<int, Mesh> dic;IEnumerator Start(){dic new Dictionary<int, Mesh>();dic.Add(0, new Mesh());yield return Resources.UnloadUn…

Flutter应用在苹果商店上架前的准备工作与注意事项

引言 &#x1f680; Flutter作为一种跨平台的移动应用程序开发框架&#xff0c;为开发者提供了便利&#xff0c;使他们能够通过单一的代码库构建出高性能、高保真度的应用程序&#xff0c;同时支持Android和iOS两个平台。然而&#xff0c;完成Flutter应用程序的开发只是第一步…

构建开源可观测平台

企业始终面临着确保 IT 基础设施和应用程序全年可用的压力。现代架构&#xff08;容器、混合云、SOA、微服务等&#xff09;的复杂性不断增长&#xff0c;产生大量难以管理的日志。我们需要智能应用程序性能管理 (APM) 和可观察性工具来实现卓越生产并满足可用性和正常运行时间…

算法错题本

这里写目录标题 错题本注意数据的耦合性对于无解情况的处理思路一组数据以0为结束标记&#xff0c;如何输入到数组中&#xff0c;并计数多个数据进行比较链表删除重复元素的启发循环体里谨慎写类型定义并初始化&#xff08;一般写上就是错&#xff09;队列中读取队尾元素数组当…

实现3D模型无变形的减面渲染方法---模大狮模型网

在进行3D模型渲染时&#xff0c;减面(或降面)是一种常用的优化技术&#xff0c;用于降低模型的复杂度&#xff0c;提高渲染效率。然而&#xff0c;在减面过程中&#xff0c;若不小心可能会引起模型的形变或细节丢失。模大狮将介绍一些方法和技巧&#xff0c;帮助您在减面渲染时…

在 Kubernetes 中使用 Traefik 作为入口点并将流量路由到您的应用程序服务

在 Kubernetes 中使用 Traefik 作为入口点并将流量路由到您的应用程序服务 您可以按照以下步骤操作&#xff1a; 1. 确保您已经在 Kubernetes 集群中部署了 Traefik。 在Kubernetes集群中部署Traefik&#xff0c;您可以按照以下步骤操作&#xff1a; 1. 创建一个Traefik C…

安卓主板MT8390(Genio 700)_MTK联发科Linux开发板方案

MediaTek Genio 700 &#xff08;MT8390&#xff09;是一款高性能的边缘 AI 物联网平台&#xff0c;专为智能家居、互动零售、工业与商业应用而设计。提供快速响应的边缘计算能力、先进的多媒体功能、广泛的传感器和连接方式&#xff0c;且支持多任务操作系统。 MT8390安卓核心…

IDA Pro *(_QWORD *)和*(_BYTE *)表达式解释

在IDA Pro&#xff08;一个交互式的反汇编器和调试器&#xff09;或其他类似的低级代码分析工具中&#xff0c;*(_QWORD *) 这种表达式通常用于类型转换和解引用。 这里的 _QWORD 通常表示一个64位的无符号整数类型&#xff08;在64位系统上&#xff09;。* 是解引用操作符&am…