当前位置: 首页 > news >正文

【2024年华为OD机试】(C卷,100分)- 分割均衡字符串 (Java JS PythonC/C++)

在这里插入图片描述

一、问题描述

题目描述

均衡串定义:字符串中只包含两种字符,且这两种字符的个数相同。

给定一个均衡字符串,请给出可分割成新的均衡子串的最大个数。

约定:字符串中只包含大写的 XY 两种字符。

输入描述

输入一个均衡串。

字符串的长度:[2, 10000]。
给定的字符串均为均衡字符串

输出描述

输出可分割成新的均衡子串的最大个数。

备注

分割后的子串,是原字符串的连续子串

用例

用例 1

输入:

XXYYXY

输出:

2

说明:
XXYYXY 可分割为 2 个均衡子串,分别为:XXYYXY

题目解析

本题要求分割出最多的均衡子串,含义其实是分割出来的均衡子串无法再分解。

例如,用例 “XXYYXY” 分解出来的两个子串 “XXYY” 和 “XY” 都是无法再次分解出均衡子串的。

如果我们从一个均衡串中取走一个均衡子串,则均衡串剩余部分依旧是一个均衡串,因为取走的均衡子串中 XY 的数量是相等的,因此均衡串剩余部分的 XY 数量也一定是相等的,满足均衡串要求。

因此,本题我们只需要从左往右扫描输入的均衡串每个字符即可,统计扫描过程中,X 字符和 Y 字符的数量,每当两种字符数量相等时,则说明遇到了一个不可分解的均衡子串。

详细步骤

  1. 初始化计数器

    • 使用两个计数器 countXcountY 分别记录 XY 的数量。
    • 使用一个计数器 result 记录不可分解的均衡子串的数量。
  2. 扫描字符串

    • 从左往右遍历输入的均衡串。
    • 对于每个字符,如果是 X,则 countX 加 1;如果是 Y,则 countY 加 1。
  3. 检查均衡条件

    • 每次更新计数器后,检查 countXcountY 是否相等。
    • 如果相等,则说明遇到了一个不可分解的均衡子串,result 加 1,并重置 countXcountY 为 0,继续扫描剩余部分。
  4. 输出结果

    • 遍历结束后,输出 result,即不可分解的均衡子串的数量。

在这里插入图片描述

用例解释

用例 1
  • 输入:
    • XXYYXY
  • 输出:
    • 2

解释

  • 遍历字符串 XXYYXY
    • X -> countX = 1
    • X -> countX = 2
    • Y -> countY = 1
    • Y -> countY = 2,此时 countX == countY,遇到一个均衡子串 XXYYresult = 1,重置 countX = 0countY = 0
    • X -> countX = 1
    • Y -> countY = 1,此时 countX == countY,遇到一个均衡子串 XYresult = 2,重置 countX = 0countY = 0
  • 最终结果为 2

通过上述步骤,我们可以高效地求出可分割成新的均衡子串的最大个数。这种方法的时间复杂度为 O(n),其中 n 是字符串的长度。

二、JavaScript算法源码

以下是 JavaScript 代码 的详细中文注释和逻辑讲解:


JavaScript 代码

// 引入 readline 模块,用于从控制台读取输入
const rl = require("readline").createInterface({ input: process.stdin });// 获取异步迭代器
var iter = rl[Symbol.asyncIterator]();// 定义异步函数 readline,用于读取一行输入
const readline = async () => (await iter.next()).value;// 立即执行异步函数
void (async function () {const s = await readline(); // 从控制台读取输入字符串 slet countX = 0; // 统计字符 'X' 的数量let countY = 0; // 统计字符 'Y' 的数量let ans = 0; // 记录满足条件的子串数量// 遍历字符串 s 中的每个字符for (let c of s) {if (c == "X") {countX++; // 如果字符是 'X',增加 countX} else {countY++; // 如果字符是 'Y',增加 countY}// 如果当前 'X' 和 'Y' 的数量相等,说明找到一个满足条件的子串if (countX == countY) {ans++; // 增加结果计数}}console.log(ans); // 输出结果
})();

代码逻辑讲解

1. 输入处理
  • 使用 readline 模块从控制台读取输入字符串 s
  • readline 是一个异步函数,通过 await 等待输入完成。

2. 统计字符数量
  • 定义两个变量:
    • countX:统计字符 'X' 的数量。
    • countY:统计字符 'Y' 的数量。
  • 遍历字符串 s 中的每个字符:
    • 如果字符是 'X',增加 countX
    • 如果字符是 'Y',增加 countY

3. 判断满足条件的子串
  • 在遍历过程中,每当 countXcountY 相等时:
    • 说明从字符串开头到当前位置的子串中,'X''Y' 的数量相等。
    • 增加结果计数 ans

4. 输出结果
  • 遍历结束后,输出满足条件的子串数量 ans

示例验证

示例 1:s = “XY”
  • 遍历过程:
    • 字符 'X'countX = 1countY = 0
    • 字符 'Y'countX = 1countY = 1
  • 结果:
    • ans = 1(子串 "XY" 满足条件)。
示例 2:s = “XXYY”
  • 遍历过程:
    • 字符 'X'countX = 1countY = 0
    • 字符 'X'countX = 2countY = 0
    • 字符 'Y'countX = 2countY = 1
    • 字符 'Y'countX = 2countY = 2
  • 结果:
    • ans = 1(子串 "XXYY" 满足条件)。
示例 3:s = “XYXY”
  • 遍历过程:
    • 字符 'X'countX = 1countY = 0
    • 字符 'Y'countX = 1countY = 1
    • 字符 'X'countX = 2countY = 1
    • 字符 'Y'countX = 2countY = 2
  • 结果:
    • ans = 2(子串 "XY""XYXY" 满足条件)。

总结

  • 功能:统计字符串 s 中满足 'X''Y' 数量相等的子串数量。
  • 核心逻辑
    1. 遍历字符串,统计 'X''Y' 的数量。
    2. 每当 'X''Y' 的数量相等时,增加结果计数。
  • 适用场景:需要统计字符串中满足某种字符数量关系的子串数量。
  • 注意事项
    • 输入字符串只能包含 'X''Y'
    • 如果字符串为空,结果为 0

如果有其他问题,欢迎随时提问!

三、Java算法源码

以下是 Java 代码 的详细中文注释和逻辑讲解:


Java 代码

import java.util.Scanner; // 引入 Scanner 类,用于从控制台读取输入public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in); // 创建 Scanner 对象,用于读取输入String s = sc.nextLine(); // 从控制台读取一行输入,存储到字符串 s 中int countX = 0; // 统计字符 'X' 的数量int countY = 0; // 统计字符 'Y' 的数量int ans = 0; // 记录满足条件的子串数量// 遍历字符串 s 中的每个字符for (int i = 0; i < s.length(); i++) {if (s.charAt(i) == 'X') {countX++; // 如果当前字符是 'X',增加 countX} else {countY++; // 如果当前字符是 'Y',增加 countY}// 如果当前 'X' 和 'Y' 的数量相等,说明找到一个满足条件的子串if (countX == countY) {ans++; // 增加结果计数}}System.out.println(ans); // 输出结果}
}

代码逻辑讲解

1. 输入处理
  • 使用 Scanner 类从控制台读取输入字符串 s
  • sc.nextLine() 用于读取一行输入,并将其存储到字符串 s 中。

2. 统计字符数量
  • 定义两个变量:
    • countX:统计字符 'X' 的数量。
    • countY:统计字符 'Y' 的数量。
  • 遍历字符串 s 中的每个字符:
    • 使用 s.charAt(i) 获取当前字符。
    • 如果字符是 'X',增加 countX
    • 如果字符是 'Y',增加 countY

3. 判断满足条件的子串
  • 在遍历过程中,每当 countXcountY 相等时:
    • 说明从字符串开头到当前位置的子串中,'X''Y' 的数量相等。
    • 增加结果计数 ans

4. 输出结果
  • 遍历结束后,输出满足条件的子串数量 ans

示例验证

示例 1:s = “XY”
  • 遍历过程:
    • 字符 'X'countX = 1countY = 0
    • 字符 'Y'countX = 1countY = 1
  • 结果:
    • ans = 1(子串 "XY" 满足条件)。
示例 2:s = “XXYY”
  • 遍历过程:
    • 字符 'X'countX = 1countY = 0
    • 字符 'X'countX = 2countY = 0
    • 字符 'Y'countX = 2countY = 1
    • 字符 'Y'countX = 2countY = 2
  • 结果:
    • ans = 1(子串 "XXYY" 满足条件)。
示例 3:s = “XYXY”
  • 遍历过程:
    • 字符 'X'countX = 1countY = 0
    • 字符 'Y'countX = 1countY = 1
    • 字符 'X'countX = 2countY = 1
    • 字符 'Y'countX = 2countY = 2
  • 结果:
    • ans = 2(子串 "XY""XYXY" 满足条件)。

总结

  • 功能:统计字符串 s 中满足 'X''Y' 数量相等的子串数量。
  • 核心逻辑
    1. 遍历字符串,统计 'X''Y' 的数量。
    2. 每当 'X''Y' 的数量相等时,增加结果计数。
  • 适用场景:需要统计字符串中满足某种字符数量关系的子串数量。
  • 注意事项
    • 输入字符串只能包含 'X''Y'
    • 如果字符串为空,结果为 0

如果有其他问题,欢迎随时提问!

四、Python算法源码

以下是 Python 代码 的详细中文注释和逻辑讲解:


Python 代码

# 输入获取
s = input()  # 从控制台读取一行输入,存储到字符串 s 中# 算法入口
def getResult():countX = 0  # 统计字符 'X' 的数量countY = 0  # 统计字符 'Y' 的数量ans = 0  # 记录满足条件的子串数量# 遍历字符串 s 中的每个字符for c in s:if c == 'X':countX += 1  # 如果当前字符是 'X',增加 countXelse:countY += 1  # 如果当前字符是 'Y',增加 countY# 如果当前 'X' 和 'Y' 的数量相等,说明找到一个满足条件的子串if countX == countY:ans += 1  # 增加结果计数return ans  # 返回满足条件的子串数量# 算法调用
print(getResult())  # 输出结果

代码逻辑讲解

1. 输入处理
  • 使用 input() 函数从控制台读取一行输入,并将其存储到字符串 s 中。

2. 统计字符数量
  • 定义两个变量:
    • countX:统计字符 'X' 的数量。
    • countY:统计字符 'Y' 的数量。
  • 遍历字符串 s 中的每个字符:
    • 如果字符是 'X',增加 countX
    • 如果字符是 'Y',增加 countY

3. 判断满足条件的子串
  • 在遍历过程中,每当 countXcountY 相等时:
    • 说明从字符串开头到当前位置的子串中,'X''Y' 的数量相等。
    • 增加结果计数 ans

4. 输出结果
  • 调用 getResult() 函数,计算满足条件的子串数量。
  • 使用 print() 函数输出结果。

示例验证

示例 1:s = “XY”
  • 遍历过程:
    • 字符 'X'countX = 1countY = 0
    • 字符 'Y'countX = 1countY = 1
  • 结果:
    • ans = 1(子串 "XY" 满足条件)。
示例 2:s = “XXYY”
  • 遍历过程:
    • 字符 'X'countX = 1countY = 0
    • 字符 'X'countX = 2countY = 0
    • 字符 'Y'countX = 2countY = 1
    • 字符 'Y'countX = 2countY = 2
  • 结果:
    • ans = 1(子串 "XXYY" 满足条件)。
示例 3:s = “XYXY”
  • 遍历过程:
    • 字符 'X'countX = 1countY = 0
    • 字符 'Y'countX = 1countY = 1
    • 字符 'X'countX = 2countY = 1
    • 字符 'Y'countX = 2countY = 2
  • 结果:
    • ans = 2(子串 "XY""XYXY" 满足条件)。

总结

  • 功能:统计字符串 s 中满足 'X''Y' 数量相等的子串数量。
  • 核心逻辑
    1. 遍历字符串,统计 'X''Y' 的数量。
    2. 每当 'X''Y' 的数量相等时,增加结果计数。
  • 适用场景:需要统计字符串中满足某种字符数量关系的子串数量。
  • 注意事项
    • 输入字符串只能包含 'X''Y'
    • 如果字符串为空,结果为 0

如果有其他问题,欢迎随时提问!

五、C/C++算法源码:

以下是 C 代码 的详细中文注释和逻辑讲解:


C 代码

#include <stdio.h>  // 引入标准输入输出库int main() {char s[10001];  // 定义一个字符数组 s,用于存储输入的字符串scanf("%s", s); // 从控制台读取字符串,存储到数组 s 中int countX = 0; // 统计字符 'X' 的数量int countY = 0; // 统计字符 'Y' 的数量int ans = 0;    // 记录满足条件的子串数量int i = 0;      // 定义索引变量 i,用于遍历字符串while (s[i] != '\0') {  // 遍历字符串,直到遇到字符串结束符 '\0'if (s[i] == 'X') {countX++; // 如果当前字符是 'X',增加 countX} else {countY++; // 如果当前字符是 'Y',增加 countY}if (countX == countY) {ans++; // 如果当前 'X' 和 'Y' 的数量相等,增加结果计数}i++; // 移动到下一个字符}printf("%d\n", ans); // 输出结果return 0; // 程序正常结束
}

代码逻辑讲解

1. 输入处理
  • 定义一个字符数组 s,用于存储输入的字符串。
  • 使用 scanf("%s", s) 从控制台读取字符串,并将其存储到数组 s 中。

2. 统计字符数量
  • 定义两个变量:
    • countX:统计字符 'X' 的数量。
    • countY:统计字符 'Y' 的数量。
  • 使用 while 循环遍历字符串 s 中的每个字符:
    • 使用 s[i] 获取当前字符。
    • 如果字符是 'X',增加 countX
    • 如果字符是 'Y',增加 countY

3. 判断满足条件的子串
  • 在遍历过程中,每当 countXcountY 相等时:
    • 说明从字符串开头到当前位置的子串中,'X''Y' 的数量相等。
    • 增加结果计数 ans

4. 输出结果
  • 使用 printf("%d\n", ans) 输出满足条件的子串数量。

示例验证

示例 1:s = “XY”
  • 遍历过程:
    • 字符 'X'countX = 1countY = 0
    • 字符 'Y'countX = 1countY = 1
  • 结果:
    • ans = 1(子串 "XY" 满足条件)。
示例 2:s = “XXYY”
  • 遍历过程:
    • 字符 'X'countX = 1countY = 0
    • 字符 'X'countX = 2countY = 0
    • 字符 'Y'countX = 2countY = 1
    • 字符 'Y'countX = 2countY = 2
  • 结果:
    • ans = 1(子串 "XXYY" 满足条件)。
示例 3:s = “XYXY”
  • 遍历过程:
    • 字符 'X'countX = 1countY = 0
    • 字符 'Y'countX = 1countY = 1
    • 字符 'X'countX = 2countY = 1
    • 字符 'Y'countX = 2countY = 2
  • 结果:
    • ans = 2(子串 "XY""XYXY" 满足条件)。

总结

  • 功能:统计字符串 s 中满足 'X''Y' 数量相等的子串数量。
  • 核心逻辑
    1. 遍历字符串,统计 'X''Y' 的数量。
    2. 每当 'X''Y' 的数量相等时,增加结果计数。
  • 适用场景:需要统计字符串中满足某种字符数量关系的子串数量。
  • 注意事项
    • 输入字符串只能包含 'X''Y'
    • 如果字符串为空,结果为 0

如果有其他问题,欢迎随时提问!

相关文章:

【2024年华为OD机试】(C卷,100分)- 分割均衡字符串 (Java JS PythonC/C++)

一、问题描述 题目描述 均衡串定义&#xff1a;字符串中只包含两种字符&#xff0c;且这两种字符的个数相同。 给定一个均衡字符串&#xff0c;请给出可分割成新的均衡子串的最大个数。 约定&#xff1a;字符串中只包含大写的 X 和 Y 两种字符。 输入描述 输入一个均衡串…...

Spring Data Elasticsearch简介

一、Spring Data Elasticsearch简介 1 SpringData ElasticSearch简介 Elasticsearch是一个实时的分布式搜索和分析引擎。它底层封装了Lucene框架,可以提供分布式多用户的全文搜索服务。 Spring Data ElasticSearch是SpringData技术对ElasticSearch原生API封装之后的产物,它通…...

GESP202312 四级【小杨的字典】题解(AC)

》》》点我查看「视频」详解》》》 [GESP202312 四级] 小杨的字典 题目描述 在遥远的星球&#xff0c;有两个国家 A 国和 B 国&#xff0c;他们使用着不同的语言&#xff1a;A 语言和 B 语言。小杨是 B 国的翻译官&#xff0c;他的工作是将 A 语言的文章翻译成 B 语言的文章…...

键盘过滤驱动

文章目录 概述注意源码参考资料 概述 irp请求会从io管理器中传递到设备栈中依次向下发送&#xff0c;当到达底层真实设备处理完成后&#xff0c;会依次返回&#xff0c;这时如果在设备栈中有我们自己注册的设备&#xff0c;就可以起到一个过滤的功能。键盘过滤驱动就是如此&am…...

dolphinscheduler2.0.9升级3.1.9版本问题记录

相关版本说明 JDK&#xff1a;JDK (1.8&#xff09; DolphinScheduler &#xff1a;3.1.9 数据库&#xff1a;MySQL (8)&#xff0c;驱动&#xff1a;MySQL JDBC Driver 8.0.16 注册中心&#xff1a;ZooKeeper (3.8.4) 问题一&#xff1a;dolphinscheduler2.0.9对应zk版本使用…...

【权限管理】Apache Shiro学习教程

Apache Shiro 是一个功能强大且灵活的安全框架&#xff0c;主要用于身份认证&#xff08;Authentication&#xff09;、授权&#xff08;Authorization&#xff09;、会话管理&#xff08;Session Management&#xff09;和加密&#xff08;Cryptography&#xff09;。它旨在为…...

9.4 visualStudio 2022 配置 cuda 和 torch (c++)

一、配置torch 1.Libtorch下载 该内容看了【Libtorch 一】libtorchwin10环境配置_vsixtorch-CSDN博客的博客&#xff0c;作为笔记用。我自己搭建后可以正常运行。 下载地址为windows系统下各种LibTorch下载地址_libtorch 百度云-CSDN博客 下载解压后的目录为&#xff1a; 2.vs…...

python特殊参数

一、默认值参数和关键字参数 1.默认值参数 形参设定默认值 称为 默认参数。调用函数时&#xff0c;可以使用比定义时更少的参数。调用函数时&#xff0c;如果没有传入默认参数对应的实参&#xff0c;则实参使用默认值默认参数在调用的时候可以不传递&#xff0c;也可以传递 …...

Ubuntu系统Qt的下载、安装及入门使用,图文详细,内容全面

文章目录 说明1 在线安装2 离线安装3 使用Qt Creator创建Qt应用程序并构建运行补充补充一&#xff1a;注册Qt账号 说明 本文讲解Ubuntu系统下安装Qt&#xff0c;包括在线安装和离线安装两种方式&#xff0c;内容充实细致&#xff0c;话多但是没有多余&#xff08;不要嫌我啰嗦…...

elasticsearch集群部署

一、创建 elasticsearch-cluster 文件夹 创建 elasticsearch-7.6.2-cluster文件夹 修改服务es服务文件夹为node-001 修改config/elasticsearch.yml 配置文件 # Elasticsearch Configuration # # NOTE: Elasticsearch comes with reasonable defaults for most settings. # …...

初学stm32 --- DAC模数转换器工作原理

目录 什么是DAC&#xff1f; DAC的特性参数 STM32各系列DAC的主要特性 DAC框图简介&#xff08;F1/F4/F7&#xff09; 参考电压/模拟部分电压 触发源 关闭触发时(TEN0)的转换时序图 DMA请求 DAC输出电压 什么是DAC&#xff1f; DAC&#xff0c;全称&#xff1a;Digital…...

保证Mysql数据库到ES的数据一致性的解决方案

文章目录 1.业务场景介绍1.1 需求分析1.2 技术实现方案 2.业界常用数据一致性方案分析2.1 同步双写方案2.2 MQ异步双写方案2.3 扫表定期同步方案2.4 监听binlog同步方案 1.业务场景介绍 1.1 需求分析 某知名的在线旅游平台&#xff0c;在即将到来的春季促销活动之前&#xff…...

Flutter Xcode 16+ iOS 18.1 使用image_pickers无法弹出选择图片的视图问题

解决 Flutter Xcode 16 使用 image_pickers 无法弹出选择图片视图的问题 在开发 Flutter 应用时&#xff0c;图片选择功能是常见的需求之一。image_pickers 库因其便捷性和功能丰富性&#xff0c;成为了许多开发者的选择。然而&#xff0c;随着 Xcode 版本的不断更新&#xff…...

socket网络编程-TC/IP方式

网络编程 1.概念&#xff1a;两台设备之间通过网络数据传输。 2.网络通信&#xff1a;将数据通过网络从一台设备传输另外一台设备。 3.java.net包下提供了一系列的类和接口&#xff0c;提供程序员使用&#xff0c;完成网络通信。 TCP和UDP TCP协议&#xff1a; 1.使用TCP协…...

《分布式光纤测温:解锁楼宇安全的 “高精度密码”》

在楼宇建筑中&#xff0c;因其内部空间庞大&#xff0c;各类电器设施众多&#xff0c;如何以一种既高效又稳定&#xff0c;兼具低成本与高覆盖特性的方式&#xff0c;为那些关键线路节点开展温度监测&#xff0c;是目前在安全监测领域一项重点研究项目&#xff0c;而无锡布里渊…...

C语言基本知识复习浓缩版:数组

所谓数组&#xff08;Array&#xff09;&#xff0c;就是一系列数据的集合。这些数据具有相同的类型&#xff0c;并且在内存中挨着存放&#xff0c;彼此之间没有缝隙。换句话说&#xff0c;数组用来存放多份数据&#xff0c;但是它有两个要求&#xff1a; 这些数据的类型必须相…...

Python贪心

贪心 贪心&#xff1a;把整体问题分解成多个步骤&#xff0c;在每个步骤都选取当前步骤的最优方案&#xff0c;直至所有步骤结束&#xff1b;每个步骤不会影响后续步骤核心性质&#xff1a;每次采用局部最优&#xff0c;最终结果就是全局最优如果题目满足上述核心性质&#xf…...

rk3568 内核态OOM内存泄漏kmemleak使用

1&#xff0c;配置&#xff0c;修改\kernel\arch\arm64\configs\rockchip_linux_defconfig&#xff0c;修改后查看.config. larkubuntu:~/Public/rk356x-linux/rk356x-linux/kernel$ cat .config | grep -i kmemleak CONFIG_HAVE_DEBUG_KMEMLEAKy CONFIG_DEBUG_KMEMLEAKy CONFI…...

ASP.NET Core - 日志记录系统(二)

ASP.NET Core - 日志记录系统&#xff08;二&#xff09; 2.4 日志提供程序2.4.1 内置日志提供程序2.4.2 源码解析 本篇接着上一篇 ASP.NET Core - 日志记录系统(一) 往下讲&#xff0c;所以目录不是从 1 开始的。 2.4 日志提供程序 2.4.1 内置日志提供程序 ASP.NET Core 包括…...

阿里云直播互动Web

官方文档&#xff1a;互动消息Web端集成方法_视频直播(LIVE)-阿里云帮助中心 以下是代码实现&#xff1a; <!-- 引入阿里云互动文件 --> <script src"https://g.alicdn.com/code/lib/jquery/3.7.1/jquery.min.js"></script> <script src&quo…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了&#xff0c;就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...

【C++进阶篇】智能指针

C内存管理终极指南&#xff1a;智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...