KamaCoder(四)

题目来源于:卡码网KamaCoder

题解来源于:GitHub - youngyangyang04/kamacoder-solutions: 卡码网题解全集 

目录

路径简化

题目描述

输入

输出

样例输入 

样例输出 

 汽水瓶子换饮料

题目描述

输入

输出

样例输入 

样例输出 

 开发商购买土地

题目描述

输入

输出

样例输入 

样例输出 



题目描述

假设你正在编写一个简单的 Unix 命令行模拟器,用户可以使用该模拟器来导航文件系统。用户可以输入 cd 命令来更改当前工作目录,并使用 pwd 命令来查看当前工作目录的路径。 

但是,用户可能会输入复杂的路径,包括"/../"、"//"、"/./"或者多个连续的"/"等冗余部分,这会导致路径不太直观和容易理解。因此,你需要实现一个简化路径的功能,以确保路径始终保持干净、规范化和易于理解。 

每次的 cd 命令都在根目录下进行执行。

输入

输入包含多组测试数据,每组测试数据有一个字符串,表示用户命令。

输出

输出简化后的路径,且路径不能以 "/" 结尾。

样例输入 

cd /a/./b/../../c/
cd /abc/def/ghi//jkl/./mno/../pqr/

样例输出 

/c
/abc/def/ghi/jkl/pqr
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.Scanner;/*** @author light* @Description 路径简化(思路:利用双端队列,首先将字符串以“/”分隔,遍历后的字符串:* 		若遇到字母,则加入队列* 		若遇到“..”且队列不为空,则将队头元素出队列----对应着返回上级目录* 		遇到“.”不用管---对应当前目录* 	最后将队列元素与“/”拼接* @create 2023-09-07 19:00*/
public class Main {public static void main(String[] args) {Scanner input=new Scanner(System.in);String s;//s=s.substring(4);//System.out.println(simplify(s));while(input.hasNextLine()){s=input.nextLine();s=s.substring(3);System.out.println(simplify(s));}}private static String simplify(String s) {Deque<String> que=new ArrayDeque<>();for (String i :s.split("/")) {if(i.equals("..")&&!que.isEmpty()){que.removeLast();  //返回上层目录} else if (!i.equals("..")&&!i.equals(".")&&!i.equals("")) {que.add(i);}}StringBuilder sb=new StringBuilder();while (!que.isEmpty()&&que.peek()!=""){sb.append("/");sb.append(que.removeFirst());}return sb.toString().length()==0?"/":sb.toString();}
}

 汽水瓶子换饮料

题目描述

某商店规定:三个空汽水瓶可以换一瓶汽水,允许向老板借空汽水瓶(只能借一个,必须要归还)。 

小张手上有 n 个空汽水瓶,她想知道自己最多可以喝到多少瓶汽水。

输入

输入文件包含多组测试数据,每个数据占一行,仅包含一个正整数 n ,表示小张手上的空汽水瓶数。n = 0 表示输入结束。

输出

对于每组测试数据,输出一行,表示最多可以喝的汽水瓶数。如果一瓶也喝不到,输出 0。

样例输入 

3
10
81
0

样例输出 

1
5
40
import java.util.Scanner;/*** @author light* @Description 汽水瓶换饮料** (思路:递归* f(1)=0;* f(2)=1;* f(3)=1;* f(4)=f(2)+1;---四个瓶子,可以用三个空瓶子换一瓶汽水,喝完后问老板借一个空瓶子,则一共可以兑换两个空瓶子* f(n)=f(n-2)+1;* @create 2023-09-07 19:05*/
public class n14 {public static void main(String[] args) {Scanner input=new Scanner(System.in);int n;while((n=input.nextInt())!=0){System.out.println(change(n));}}private static int change(int n) {if(n==1){return 0;}if(n==2){return 1;}return change(n-2)+1;}
}

 开发商购买土地

题目描述

在一个城市区域内,被划分成了n * m个连续的区块,每个区块都拥有不同的权值,代表着其土地价值。目前,有两家开发公司,A 公司和 B 公司,希望购买这个城市区域的土地。 

现在,需要将这个城市区域的所有区块分配给 A 公司和 B 公司。

然而,由于城市规划的限制,只允许将区域按横向或纵向划分成两个子区域,而且每个子区域都必须包含一个或多个区块。 为了确保公平竞争,你需要找到一种分配方式,使得 A 公司和 B 公司各自的子区域内的土地总价值之差最小。 

注意:区块不可再分。

输入

第一行输入两个正整数,代表 n 和 m。 

接下来的 n 行,每行输出 m 个正整数。

输出

请输出一个整数,代表两个子区域内土地总价值之间的最小差距。

样例输入 

3 3
1 2 3
2 1 3
1 2 3

样例输出 

0


import java.util.Scanner;/*** @author light* @Description 开发商购买土地* * (思路:直接暴力模拟每一次分隔,记录最小差值* @create 2023-09-07 19:37*/
public class n16 {public static void main(String[] args) {Scanner input=new Scanner(System.in);int n=input.nextInt();  //n行int m=input.nextInt();  //m列int[][] land=new int[n][m];int sum=0;for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {land[i][j]=input.nextInt();sum+=land[i][j];}}System.out.println(getMinDiff(land, n, m, sum));}private static int getMinDiff(int[][] land,int n,int m,int sum) {int aArea=0;int bArea;int diff;int result=Integer.MAX_VALUE;for (int i = 0; i < n-1; i++) { //画横线for (int j = 0; j < m; j++) {aArea+=land[i][j]; //a价值}bArea=sum-aArea;  //b价值diff=bArea-aArea;  //ab总价值差result=Math.min(result,Math.abs(diff));}aArea=0;for (int j = 0; j < m-1; j++) {for (int i = 0; i < n; i++) {aArea+=land[i][j];}bArea=sum-aArea;  //b价值diff=bArea-aArea;  //ab总价值差result=Math.min(result,Math.abs(diff));}return result;}
}

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

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

相关文章

3、DVWA——CSRF

文章目录 一、CSRF概述二、low2.1 通关思路2.2 源码分析 三、medium3.1 通关思路3.2 源码分析 四、high4.1 通关思路4.2 源码分析 五、impossible 一、CSRF概述 CSRF全称为跨站请求伪造&#xff08;Cross-site request forgery&#xff09;&#xff0c;是一种网络攻击方式&…

Excel_VBA程序文件的加密及解密说明

VBA应用技巧及疑难解答 Excel_VBA程序文件的加密及解密 在您看到这个文档的时候&#xff0c;请和我一起念&#xff1a;“唵嘛呢叭咪吽”“唵嘛呢叭咪吽”“唵嘛呢叭咪吽”&#xff0c;为自己所得而感恩&#xff0c;为付出者赞叹功德。 本不想分享之一技术&#xff0c;但众多学…

Kafka核心原理第二弹——更新中

架构原理 一、高吞吐机制&#xff1a;Batch打包、缓冲区、acks 1. Kafka Producer怎么把消息发送给Broker集群的&#xff1f; 需要指定把消息发送到哪个topic去 首先需要选择一个topic的分区&#xff0c;默认是轮询来负载均衡&#xff0c;但是如果指定了一个分区key&#x…

基于SSM的校园驿站管理系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

Git管理

Git管理 ①对于项目目录中有.git的&#xff0c;可以在idea里面更改远程提交地址 Git->>Manage Remotes 中修改远程提交地址 ②对于没有.git目录的项目 在项目的根目录下进入cmd&#xff0c;使用下面的语句初始化.git目录 ##初始化 git init

本地电脑搭建web服务器、个人博客网站并发布公网访问 【无公网IP】(1)

文章目录 前言1. 安装套件软件2. 创建网页运行环境 指定网页输出的端口号3. 让WordPress在所需环境中安装并运行 生成网页4. “装修”个人网站5. 将位于本地电脑上的网页发布到公共互联网上 前言 在现代社会&#xff0c;网络已经成为我们生活离不开的必需品&#xff0c;而纷繁…

《异常检测——从经典算法到深度学习》22 Kontrast: 通过自监督对比学习识别软件变更中的错误

《异常检测——从经典算法到深度学习》 0 概论1 基于隔离森林的异常检测算法 2 基于LOF的异常检测算法3 基于One-Class SVM的异常检测算法4 基于高斯概率密度异常检测算法5 Opprentice——异常检测经典算法最终篇6 基于重构概率的 VAE 异常检测7 基于条件VAE异常检测8 Donut: …

OpenAI发布ChatGPT企业级版本

本周一&#xff08;2023年8月28日&#xff09;OpenAI 推出了 ChatGPT Enterprise&#xff0c;这是它在 4 月份推出的以业务为中心的订阅服务。该公司表示&#xff0c;根据新计划&#xff0c;不会使用任何业务数据或对话来训练其人工智能模型。 “我们的模型不会从你的使用情况中…

Run the Docker daemon as a non-root user (Rootless mode)

rootless 简介 rootless模式是指以非root用户身份运行Docker守护程序和容器。那么为什么要有rootless mode呢&#xff1f;因为在root用户下安装启动的容器存在安全问题。存在的安全问题具体来说是容器内的root用户就是宿主机的root用户&#xff0c;容器内uid1000的用户就是宿主…

Linux监测进程打开文件

分析问题过程中&#xff0c;追踪进程打开的文件可以在许多不同情况下有用&#xff0c;体现在以下几个方面&#xff1a; 故障排除和调试&#xff1a; 当程序出现问题、崩溃或异常行为时&#xff0c;追踪进程打开的文件可以帮助找出问题的根本原因。这有助于快速定位错误&#x…

2023国赛C题解题思路:蔬菜类商品的自动定价与补货决策

本次将全程提供国赛C题完整解题思路及代码&#xff0c;同时共享一些国赛论文模板等资料&#xff0c;需要的小伙伴可以关注一下&#xff0c;持续更新&#xff01;大家也可以关注B站视频&#xff1a;不知名数学家小P 实时更新 本次C题是一道较为简单的统计分析题目&#xff0c;建…

RGMII 与 GMII 转换电路设计

文章目录 前言一、RGMII 接口的信号说明二、RGMII 发送的 FPGA 实现方案1. OPPOSITE_EDGE 模式2. SAME_EDGE 模式三、使用 FPGA 实现 RGMII 接口前言 RGMII 是 IEEE802.3z 标准中定义的千兆媒体独立接口(Gigabit Medium Independent Interface)GMII 的一个替代品。相较于 GM…

水果库存系统(SSM+Thymeleaf版)

不为失败找理由&#xff0c;只为成功找方法。所有的不甘&#xff0c;因为还心存梦想&#xff0c;所以在你放弃之前&#xff0c;好好拼一把&#xff0c;只怕心老&#xff0c;不怕路长。 文章目录 一、前言二、系统架构与需求分析1、技术栈1.1 后端1.2 前端 2、需求分析 三、设计…

jwt和token的区别

目录 jwt和token的区别两者区别格式安全性扩展性无状态性 使用场景Token的使用场景&#xff1a;JWT的使用场景&#xff1a; jwt和token的区别 两者区别 Token和JWT&#xff08;JSON Web Token&#xff09;是两种常见的身份验证机制&#xff0c;它们有以下区别&#xff1a; 格…

Tomcat加载静态资源--防止SpringMVC拦截

最简洁方式&#xff1a;使用API 在配置文件下写配置类SpringMvcSupport&#xff0c;并且让SpringMVC扫描到此文件夹ComponentScan({"com.itheima.controller","com.itheima.config"}) SpringMvcSupport配置类如下 Configuration public class SpringMvcS…

LeetCode每日一题:1123. 最深叶节点的最近公共祖先(2023.9.6 C++)

目录 1123. 最深叶节点的最近公共祖先 题目描述&#xff1a; 实现代码与解析&#xff1a; dfs 原理思路&#xff1a; 1123. 最深叶节点的最近公共祖先 题目描述&#xff1a; 给你一个有根节点 root 的二叉树&#xff0c;返回它 最深的叶节点的最近公共祖先 。 回想一下&…

【深度学习】You Only Segment Once: Towards Real-Time Panoptic Segmentation,YOSO全景分割

论文&#xff1a;https://arxiv.org/abs/2303.14651 代码&#xff1a;https://github.com/hujiecpp/YOSO 文章目录 Abstract1. Introduction2. Related Work3. Method3.1. Task Formulation3.2. Feature Pyramid Aggregator3.3. Separable Dynamic Decoder 4. Experiments4.1. …

go 地址 生成唯一索引v2 --chatGPT

问&#xff1a;golang 函数 getIndex(n,addr,Hlen,Tlen) 返回index。参数n为index的上限&#xff0c;addr为包含大小写字母数字的字符串,Hlen为截取addr头部的长度&#xff0c;Tlen为截取addr尾部的长度 gpt: 你可以编写一个函数来计算根据给定的参数 n、addr、Hlen 和 Tlen …

潜艇来袭(Qt官方案例-2维动画游戏)

一、游戏介绍 1 开始界面 启动程序&#xff0c;进入开始界面。 2 开始新游戏 点击菜单&#xff1a;File》New Game &#xff08;或者CtrlN&#xff09;进入新游戏。 开始新游戏之后&#xff0c;会有一个海底的潜艇&#xff0c;和水面舰艇对战。 计算机&#xff1a;自动控制…

Leetcode1006笨阶乘

思路&#xff1a;以4为一个分组分别进行处理 class Solution:def clumsy(self, n: int) -> int:answer_dict {0:0,1: 1, 2: 2, 3: 6, 4: 7}if n > 4:answer n * (n - 1) // (n - 2) n - 3n - 4else:print(answer_dict[n])return answer_dict[n]print(answer)while n …