字符串一、字符串的基本定义与特性1. 定义方式 双引号:"hello" 单引号:'hello' 反引号(模板字符串):hello 2. 字符串的不可变性 字符串是不可变类型,一旦创建就无法更改其内容,只能生成新的字符串。 123let str = "hello";str[0] = "H"; // 无效console.log(str); // "hello" 3. 字符串与 Unicode JavaScript 使用 Unicode 编码,每个字符占用 2 个字节。 可以使用转义字符表示特殊字符,例如: 1let str = "Hello\u0041"; // "HelloA" 二、字符串的常用操作1. 字符串的长度 使用 .length属性获取字符串的长度: 12let str = "hello";console.log(str.length); // 5 2. 字符串访问 使用索引访问字符串中的字符: 12let st ...
数学罗马数字罗马数字是一种古老的数字表示方法,起源于古罗马,至今仍在一些特定场合被使用,比如钟表、书本章节、电影序列号等。罗马数字使用几个基本符号来表示不同的数值,这些符号包括: 基本罗马数字符号及对应值: 罗马数字 阿拉伯数字 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 罗马数字的书写规则: 重复表示加法:相同的数字连写,其值等于这些数字相加。例如: II = 1 + 1 = 2 III = 1 + 1 + 1 = 3 小数字在大数字右边表示加法:如 VI = 5 + 1 = 6,XV = 10 + 5 = 15。 小数字在大数字左边表示减法:如 IV = 5 - 1 = 4,IX = 10 - 1 = 9。 同一数字不能连续重复超过三次:例如,4 不写作 IIII,而是写作 IV;9 不写作 VIIII,而是写作 IX。 从左到右按数值从大到小排列,例如: LXVIII = 50 + ...
数据结构-实验四查找和排序算法实现1、各种排序算法的实现 用随机函数生成16个2位正整数(10~99),对同一组数据分别实现直接插入排序、 折半插入排序、希尔排序;冒泡排序、快速排序;选择排序、堆排序;二路归并排序; 基数排序等多种排序算法,输出排序中间过程、统计关键字的比较次数和记录的移动次 数。 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 ...
2024第十五届蓝桥杯C/C++B组试题A 握手问题(本题总分:5分) 【问题描述】 小蓝组织了一场算法交流会议,总共有50人参加了本次会议。在会议上,大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进,行一次握手(且仅有一次)。但有7个人,这7人彼此之间没有进行握手(但,这7人与除这7人以外的所有人进行了握手)。请问这些人之间一共进行了多,少次握手? 注意 A 和 B 握手的同时也意味着 B 和 A 握手了,所以算作是一次握手。 【答案提交】 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。 123456789101112131415#include<iostream>//A握手问题using namespace std;int fact(int n)//用递归{ if (n == 0)return 0; return n + fact(n - 1);}int main(){ int a7 = 43 * 7;//这7 ...
数据结构-实验三图的操作与实现 利用图的邻接表和邻接矩阵存储结构设计并实现各种操作算法(任选一种存储结构 来实现算法)。 1、图的邻接表和邻接矩阵存储 建立下图的邻接表和邻接矩阵,并输出之。 12345678910graph LR 0 ---|28| 1 1 ---|16| 2 2 ---|12| 3 3 ---|22| 4 4 ---|25| 5 5 ---|10| 0 1 ---|14| 6 3 ---|18| 6 4 ---|24| 6 1.邻接矩阵12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061#include<iostream>using namespace std;#define max_vexs 100#define max_number 9999typedef struct Graph { char vexs[ma ...
动态规划动态规划(Dynamic Programming, 简称 DP)是计算机科学中一种重要的算法设计思想,常用于解决具有 重叠子问题 和 最优子结构 性质的问题。以下是动态规划相关的知识点总结: 动态规划的核心思想 重叠子问题 问题可以被分解为子问题,子问题之间有重复计算。 示例:斐波那契数列,F(n) = F(n-1) + F(n-2),需要重复计算子问题。 最优子结构 一个问题的最优解可以由其子问题的最优解组合得到。 示例:最短路径问题,某个节点的最短路径由其前驱节点的最短路径加上路径长度决定。 状态转移方程 明确当前状态与之前状态之间的关系。 示例:dp[i] = dp[i-1] + dp[i-2](斐波那契数列)。 动态规划的分类1. 按解题顺序分类 自顶向下(记忆化搜索) 通过递归实现,配合缓存避免重复计算。 示例:斐波那契数列递归实现,使用数组存储中间结果。 自底向上(迭代) 从最小子问题开始计算,逐步推导出原问题的解。 示例:斐波那契数列用循环计算。 2. 按问题类型分类 线性动态规划 问题有线性结构,例如:最长递增子序列、斐波那契数列。 ...
数据结构15-图的创建及其遍历方法(BFS+DFS)1.使用邻接矩阵表示第一种小写法: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465#include<iostream>using namespace std;#define max_vexs 100#define max_number 9999typedef struct Graph { char vexs[max_vexs]; int arcs[max_vexs][max_vexs]; int vexsnumber; int arcsnumber;};// 初始化的是这个有权图的顶点数目已经这个有权图的边的数目,还有这个有权图的边进行初始化Graph* InitGraph(int vexs,int arcs) { // 初始化这个有权图 Graph* G = new Graph; G->vex ...
链表23. 合并 K 个升序链表 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 1234567891011121314151617181920212223242526272829303132333435363738394041424344/** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } *//** * @param {ListNode[]} lists * @return {ListNode} */var mergeKLists = function(lists) { if(!lists||lists.length===0){ return ...
SetJavaScript中的Set是一种内建的数据结构,类似于数组,但具有以下几个特点: 元素唯一性:Set中的每个元素都是唯一的,不允许重复。 顺序性:元素按插入顺序排序。 可迭代性:Set是可迭代的,可以使用for...of进行遍历。 值类型:Set只关心元素的值是否相等,而不关心其类型。 创建一个Set1let mySet = new Set(); 可以通过传入一个可迭代对象来初始化一个Set。 12let numbers = new Set([1, 2, 3, 4]);console.log(numbers); // Set { 1, 2, 3, 4 } 元素唯一性Set 中的所有元素都是唯一的,不能重复。例如: 12const mySet = new Set([1, 2, 2, 3]);console.log(mySet); // 输出:Set(3) { 1, 2, 3 } 可以接受可迭代对象(例如数组)作为参数创建 Set 时,可以直接将一个数组或其他可迭代对象传入: 123const numbers = [1, 2, ...