创建网站服务器,广州专门做网站的公司,网络公司具体是干什么的,适合设计制作公司的网站asp远吗题目来源于#xff1a;卡码网KamaCoder
题解来源于#xff1a;GitHub - youngyangyang04/kamacoder-solutions: 卡码网题解全集 目录
路径简化
题目描述
输入
输出
样例输入
样例输出 汽水瓶子换饮料
题目描述
输入
输出
样例输入
样例输出 开发商购买土地 …题目来源于卡码网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 inputnew Scanner(System.in);String s;//ss.substring(4);//System.out.println(simplify(s));while(input.hasNextLine()){sinput.nextLine();ss.substring(3);System.out.println(simplify(s));}}private static String simplify(String s) {DequeString quenew 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 sbnew 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 inputnew Scanner(System.in);int n;while((ninput.nextInt())!0){System.out.println(change(n));}}private static int change(int n) {if(n1){return 0;}if(n2){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 inputnew Scanner(System.in);int ninput.nextInt(); //n行int minput.nextInt(); //m列int[][] landnew int[n][m];int sum0;for (int i 0; i n; i) {for (int j 0; j m; j) {land[i][j]input.nextInt();sumland[i][j];}}System.out.println(getMinDiff(land, n, m, sum));}private static int getMinDiff(int[][] land,int n,int m,int sum) {int aArea0;int bArea;int diff;int resultInteger.MAX_VALUE;for (int i 0; i n-1; i) { //画横线for (int j 0; j m; j) {aArealand[i][j]; //a价值}bAreasum-aArea; //b价值diffbArea-aArea; //ab总价值差resultMath.min(result,Math.abs(diff));}aArea0;for (int j 0; j m-1; j) {for (int i 0; i n; i) {aArealand[i][j];}bAreasum-aArea; //b价值diffbArea-aArea; //ab总价值差resultMath.min(result,Math.abs(diff));}return result;}
}