杭州高端品牌网站建设/大金seo

杭州高端品牌网站建设,大金seo,wordpress php文件上传,网站建设总结报告书刷题小记: 本期涉及ACM模式下栈和链表的构建与使用,值得学习。 卡玛网15.神秘字符(卡玛网15.神秘字符) 题目分析: 若给定2行字符串,其中第一个串的长度为偶数,现要求把第二个串插入到第一个…

刷题小记:

本期涉及ACM模式下栈和链表的构建与使用,值得学习。

卡玛网15.神秘字符(卡玛网15.神秘字符)

题目分析:

若给定2行字符串,其中第一个串的长度为偶数,现要求把第二个串插入到第一个串的正中央并输出。

输入数据首先给出一个整数n,表示测试数据的组数,每组2行,每行一个字符串,长度大于0小于50,每组第一行的字符串的长度必为偶数。

输出时每组输出占一行即可。

解题思路:

分组读入,借助StringBuilder构造。

import java.util.*;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);while (in.hasNext()) { // 处理多组输入int n = in.nextInt();in.nextLine(); // 消耗换行符while (n-- > 0) {String s1 = in.nextLine();String s2 = in.nextLine();StringBuilder sb = new StringBuilder(s1);sb.insert(sb.length() / 2, s2);System.out.println(sb.toString());}}in.close();}
}

卡码网16.位置互换(卡码网16.位置互换)

题目分析:

输入包含多组测试数据,第一行是一个整数n,表示有且只有n组测试数据,每组测试数据为一行长度为偶数的字符串(串长不超过50)。

请为每组测试数据输出奇偶位互换后的结果,每组输出占一行。

解题思路:

借助StringBuilder进行构造,每2个字符一对遍历字符串,每对字符使用Swap进行交换(添入StringBuilder的次序交换)。

import java.util.*;
public class Main{public static void main(String[] args) {Scanner in = new Scanner(System.in);while(in.hasNext()) {int n = in.nextInt();in.nextLine();// 消耗换行符while(n-- > 0) {String s = in.nextLine();StringBuilder sb = new StringBuilder();for(int i = 0; i < s.length(); i+=2) {sb.append(s.charAt(i+1));sb.append(s.charAt(i));}System.out.println(sb.toString());}}in.close();}
}

卡玛网17.出栈合法性(卡玛网17.出栈合法性)

题目分析:

已知自然数1,2,......,N(1 <= N <= 100)依次入栈,请问接下来的各组序列是否为合法的出栈序列。

输入包含多组测试数据。每组测试数据的第一行为整数N,当N = 0时输入结束;第二行为N个正整数,以空格隔开,为出栈序列。

输出Yes或No表示每组出栈序列是否合法。

解题思路:

观察示例可以发现:出栈序列并非先将所有1~N的自然数入栈后再出栈,而是边入栈边适时按出栈序列出栈。

  1. 以3 4 2 1 5为例:
    • 1入栈,2入栈,3入栈,3出栈—— 12
    • 4入栈,4出栈—— 12
    • 2出栈—— 1
    • 1出栈—— 栈空
    • 5入栈,5出栈——栈空
  • 这是合法的。
  1. 以3 5 1 4 2为例:
    • 1入栈,2入栈,3入栈,3出栈—— 12
    • 4入栈,5入栈,5出栈—— 124
    • 1出栈——124,栈顶为4,无法实现
  • 这是不合法的。

解题步骤:

观察两个示例可以发现解题步骤如下:

  • 将i属于1~N的自然数依次入栈,且从j = 0处开始遍历出栈序列
  • 每次先将i入栈,再循环检查栈顶元素top与出栈序列下标j处的curNum
    • 若相同,则top出栈,j++
    • 若不相同,结束循环
  • 入栈序列全部完毕,栈不为空,那么结果为No。
import java.util.*;
public class Main{public static void main(String[] args){Scanner in = new Scanner(System.in);while(in.hasNext()){int N = in.nextInt();if (N == 0) break;in.nextLine();// 消耗换行符String[] popList = in.nextLine().split(" ");String res;Deque<Integer> stack = new ArrayDeque<>();for(int i = 1, j = 0; i <= N; i++) {stack.push(i);// 依次入栈while(j < N && !stack.isEmpty()) {// 依次出栈int top = stack.peek();int curNum = Integer.parseInt(popList[j]);if (top == curNum) {stack.pop();j++;} else {break;}}}if (stack.isEmpty()) res = "Yes";else res = "No";System.out.println(res);}in.close();}
}

卡码网18.链表的基本操作(卡码网18.链表的基本操作)

题目分析:

按要求实现链表及其基本操作

输入描述:

输入数据只有一组,第一行有n+1个整数,第一个整数是这行余下的整数数目n,后面是n个整数,用于初始化链表,且输入的顺序与链表中的顺序相反。

第二行有一个整数m,表示接下来有m行,每行有一个字符串代表对链表的操作。

输出描述:

每个操作的含义及其对应的输出如下:

  1. "get",代表获得第a个元素(a从1开始计数)
    1. 获取成功则输出该元素
    2. 获取失败则输出"get fail"
  1. "delete",代表删除第a个元素(a从1开始计数)
    1. 删除成功则输出"delete OK"
    2. 删除失败则输出"delete fail"
  1. "insert",其后跟着两个用空格隔开的整数a和e,代表在第a个位置前面插入e(a从1开始计数)
    1. 插入成功则输出"insert OK"
    2. 插入失败则输出"insert fail"
  1. "show",直接打印链表全部内容
    1. 链表不为空,用空格间隔输出链表中的全部元素
    2. 链表为空,输出"Link list is empty"

解题思路:

头插法实现倒序插入。

按要求初始化自定义链表的数据结构及其操作。

注意

  • insert方法在a为链表长度加1时,表示在链表末尾插入,若a超过此值,则插入失败。
  • insert方法和delete方法可能改变头节点,需特殊处理(或者给链表增设虚拟头节点dumpyHead以解决该问题)
import java.util.*;
public class Main{static class ListNode{int val;ListNode next;public ListNode() {}public ListNode(int val) {this.val = val;this.next = null;}public ListNode(ListNode next) {this.next = next;}public ListNode(int val, ListNode next) {this.val = val;this.next = next;}}static class MyLinkedList{ListNode head;public MyLinkedList() {this.head = null;};public void add(int val) {// 头插法实现倒序地添加元素head = new ListNode(val, head);}public String get(int a) {ListNode cur = head;int num = 1;while(cur.next != null && num != a) {cur = cur.next;num++;}if (num == a) return Integer.toString(cur.val);else return "get fail";}public String delete(int a) {if (a == 1) {// 特殊处理a为1时的情况,更新头节点if (head != null) {head = head.next;return "delete OK";}else {return "delete fail";}}ListNode pre = new ListNode(head);int num = 1;while(pre.next != null && num != a) {pre = pre.next;num++;}if (pre.next != null && num == a) {pre.next = pre.next.next;return "delete OK";}else {return "delete fail";}}public String insert(int a, int e) {if (a == 1) {// 特殊处理a为1时的情况,更新头节点if (head == null) {head = new ListNode(e);} else {head = new ListNode(e, head);}return "insert OK";}ListNode pre = new ListNode(head);int num = 1;while(pre.next != null && num != a) {pre = pre.next;num++;}if (num == a) {pre.next = new ListNode(e, pre.next);return "insert OK";} else {return "insert fail";}}public String show() {StringBuilder sb = new StringBuilder();ListNode cur = head;while(cur != null) {if (cur != head) sb.append(" ");sb.append(cur.val);cur = cur.next;}if (sb.length() > 0) return sb.toString();else return "Link list is empty";}}public static void main(String[] args) {Scanner in = new Scanner(System.in);MyLinkedList list = new MyLinkedList();while(in.hasNext()) {int n = in.nextInt();while(n-- > 0) {int val = in.nextInt();list.add(val);}int m = in.nextInt();in.nextLine();// 消耗换行符while(m-- > 0) {String[] opt = in.nextLine().split(" ");switch (opt[0]) {case "get":System.out.println(list.get(Integer.parseInt(opt[1])));break;case "delete":System.out.println(list.delete(Integer.parseInt(opt[1])));break;case "insert":System.out.println(list.insert(Integer.parseInt(opt[1]), Integer.parseInt(opt[2])));break;case "show":System.out.println(list.show());break;default:break;}}}in.close();}
}

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

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

相关文章

前端字段名和后端不一致?解锁 JSON 映射的“隐藏规则” !!!

&#x1f680; 前端字段名和后端不一致&#xff1f;解锁 JSON 映射的“隐藏规则” &#x1f31f; 嘿&#xff0c;技术冒险家们&#xff01;&#x1f44b; 今天我们要聊一个开发中常见的“坑”&#xff1a;前端传来的 JSON 参数字段名和后端对象字段名不一致&#xff0c;会发生…

【Linux】Bash是什么?怎么使用?

李升伟 整理 什么是 Bash&#xff1f; Bash&#xff08;Bourne Again Shell&#xff09;是一种 命令行解释器&#xff08;Shell&#xff09;&#xff0c;广泛用于 Unix 和 Linux 操作系统。它是 Bourne Shell&#xff08;sh&#xff09; 的增强版&#xff0c;提供了更多的功能…

Qt Creator入门

1.创建项目 选择创建项目-Application&#xff08;Qt&#xff09;-Qt Widgets Application-修改名称即可 默认创建有窗口类&#xff0c;myWidget,基类有三种选择&#xff1a;QWidget&#xff0c;QMainWindow&#xff0c;QDialog 注意&#xff1a; 名称和创建路径不能有中文、…

咖啡点单小程序毕业设计(JAVA+SpringBoot+微信小程序+完整源码+论文)

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 随着社会的快速发展和…

003-掌控命令行-CLI11-C++开源库108杰

首选的现代C风格命令行参数解析器! &#xff08;本课程包含两段教学视频。&#xff09; 以文件对象监控程序为实例&#xff0c;五分钟实现从命令行读入多个监控目标路径&#xff1b;区分两大时机&#xff0c;学习 CLI11 构建与解析参数两大场景下的异常处理&#xff1b;区分三…

谱分析方法

前言 本文隶属于专栏《机器学习数学通关指南》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见《机器学习数学通关指南》 ima 知识库 知识库广场搜索&#…

【软考-架构】11.3、设计模式-新

✨资料&文章更新✨ GitHub地址&#xff1a;https://github.com/tyronczt/system_architect 文章目录 项目中的应用设计模式创建型设计模式结构型设计模式行为型设计模式 &#x1f4af;考试真题题外话 项目中的应用 在实际项目中&#xff0c;我应用过多种设计模式来解决不同…

Linux的Shell编程

一、什么是Shell 1、为什么要学习Shell Linux运维工程师在进行服务器集群管理时&#xff0c;需要编写Shell程序来进行服务器管理。 对于JavaEE和Python程序员来说&#xff0c;工作的需要。Boss会要求你编写一些Shell脚本进行程序或者是服务器的维护&#xff0c;比如编写一个…

论文阅读笔记:Deep Unsupervised Learning using Nonequilibrium Thermodynamics

1、来源 论文连接1&#xff1a;http://ganguli-gang.stanford.edu/pdf/DeepUnsupDiffusion.pdf 论文连接2(带appendix)&#xff1a;https://arxiv.org/pdf/1503.03585v7 代码链接&#xff1a;https://github.com/Sohl-Dickstein/Diffusion-Probabilistic-Models 代码的环境配置…

Linux 查看及测试网络命令

使用 ifconfig 命令查看网络接口地址 查看指定的网络接口信息 执行 ifconfig ens33 命令可以只查看网卡 ens33 的配置信息

ABAP语言的动态编程(4) - 综合案例:管理费用明细表

本篇来实现一个综合案例&#xff1a;管理费用明细表。报表在实际项目中&#xff0c;也有一定的参考意义&#xff0c;一方面展示类似的报表&#xff0c;比如管理费用、研发费用等费用的明细&#xff0c;使用业务比较习惯的展示格式&#xff1b;另一方面正好综合运用前面学习的动…

【Redis】Redis的数据删除(过期)策略,数据淘汰策略。

如果问到&#xff1a;假如Redis的key过期之后&#xff0c;会立即删除吗&#xff1f; 其实就是想问数据删除(过期)策略。 如果面试官问到&#xff1a;如果缓存过多&#xff0c;内存是有限的&#xff0c;内存被占满了怎么办&#xff1f; 其实就是问&#xff1a;数据的淘汰策略。…

Linux配置yum仓库,服务控制,防火墙

一、yum仓库 1.在安装软件时&#xff0c;首先第一步就是要考虑软件的版本的问题&#xff01; 2.软件的安装&#xff1a;最安全可靠的方法就是去软件对应的官网上查看安装手册&#xff08;包括的软件的下载&#xff09; 红帽系软件安装的常见的3种方式 &#xff08;1&#x…

设计模式(创建型)-抽象工厂模式

摘要 在软件开发的复杂世界中,设计模式作为解决常见问题的最佳实践方案,一直扮演着至关重要的角色。抽象工厂模式,作为一种强大的创建型设计模式,在处理创建一系列或相关依赖对象的场景时,展现出了独特的优势和灵活性。它通过提供一个创建对象的接口,让开发者能够在不指定…

【JavaEE】-- SpringBoot快速上手

文章目录 1. Maven1.1 什么是Maven1.2 为什么要学Maven1.3 创建一个Maven项目1.4 Maven核心功能1.4.1 项目创建1.4.2 依赖管理1.4.3 Maven Help插件 1.5 Maven仓库1.5.1 本地仓库1.5.2 中央仓库1.5.3 私有服务器&#xff08;私服&#xff09; 1.6 Maven设置国内源1.6.1 配置当前…

TCP/IP 协议精讲-精华总结版本

序言 本文旨在介绍一下TCP/IP涉及得所有基础知识&#xff0c;为大家从宏观上俯瞰TCP/IP提供一个基石&#xff0c;文档属于《TCP/IP图解&#xff08;第五版&#xff09;》的精简版本。 专业术语 缩写 全称 WAN Wide area network广域网 LAN Local area network局域网 TC…

C语言——结构体、联合、枚举

C语言中自定义类型 结构体结构体变量的创建和初始化结构体传参结构体内存对齐(如何存储) 联合体(共用体)联合体创建和初始化联合体大小(如何存储) 枚举类型枚举类型创建枚举类型初始化枚举的优点(相较于define) 前言 C语言中有内置类型和自定义类型&#xff0c;内置类型就像int…

【Linux操作系统——学习笔记二】Linux简单导航命令操作

一、前言 学习Linux&#xff0c;本质上是学习在命令行下熟练使用Linux的各类命令。 命令行&#xff1a;是一种通过输入命令和参数与计算机系统进行交互的方式&#xff0c;可以使用各种字符化命令对系统发出操作指令&#xff0c;打开Linux终端&#xff0c;进入命令行界面。 …

新安装的cursor安装不了插件

我安装的cursor版本0.47.5 直接说解决办法 找到安装路径cursor\resources\app下的product.json 修改https://marketplace.cursorapi.com为https://marketplace.visualstudio.com

HTML5扫雷游戏开发实战

HTML5扫雷游戏开发实战 这里写目录标题 HTML5扫雷游戏开发实战项目介绍技术栈项目架构1. 游戏界面设计2. 核心类设计 核心功能实现1. 游戏初始化2. 地雷布置算法3. 数字计算逻辑4. 扫雷功能实现 性能优化1. DOM操作优化2. 算法优化 项目亮点技术难点突破1. 首次点击保护2. 连锁…