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

C/C++每日一练(20230325)

目录

1. 搜索插入位置 🌟

2. 结合两个字符串  🌟

3. 同构字符串  🌟

🌟 每日一练刷题专栏 🌟

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏


1. 搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

你可以假设数组中无重复元素。

示例 1:

输入: [1,3,5,6], 5
输出: 2

示例 2:

输入: [1,3,5,6], 2
输出: 1

示例 3:

输入: [1,3,5,6], 7
输出: 4

示例 4:

输入: [1,3,5,6], 0
输出: 0

代码:

#include <bits/stdc++.h>
using namespace std;class Solution
{
public:int searchInsert(vector<int> &nums, int target){int lo = -1;int hi = nums.size();while (lo + 1 < hi){int mid = lo + (hi - lo) / 2;if (target > nums[mid]){lo = mid;}else{hi = mid;}}return hi;}
};int main()
{Solution s;vector<int> nums = {1,3,5,6};cout << s.searchInsert(nums, 5) << endl;cout << s.searchInsert(nums, 2) << endl;cout << s.searchInsert(nums, 7) << endl;cout << s.searchInsert(nums, 0) << endl;return 0;
} 

输出:

2
1
4
0

二分查找,其它写法:

class Solution {
public:
    int searchInsert(vector<int>& nums, int target) {
        int left = 0, right = nums.size() - 1;
        while (left <= right) {
            int mid = left + (right - left) / 2;
            if (nums[mid] == target) {
                return mid;
            } else if (nums[mid] < target) {
                left = mid + 1;
            } else {
                right = mid - 1;
            }
        }
        return left;
    }
};

完整代码:

#include <bits/stdc++.h>
using namespace std;class Solution {
public:int searchInsert(vector<int>& nums, int target) {int left = 0, right = nums.size() - 1;while (left <= right) {int mid = left + (right - left) / 2;if (nums[mid] == target) {return mid;} else if (nums[mid] < target) {left = mid + 1;} else {right = mid - 1;}}return left;}
};int main()
{Solution s;vector<int> nums = {1,3,5,6};cout << s.searchInsert(nums, 5) << endl;cout << s.searchInsert(nums, 2) << endl;cout << s.searchInsert(nums, 7) << endl;cout << s.searchInsert(nums, 0) << endl;return 0;
} 

2. 结合两个字符串

写一个结合两个字符串的方法,从第一个字符串中取出一个字符,然后从第二个字符串中取出一个字符,以此类推。一旦一个字符串没有字符,它就应该继续使用另一个字符串

输入:两个字符串,如s1="day"和s2="time"

输出:一个结果字符串,对于上面的输入情况,它将是“dtaiyme”。

出处:

https://edu.csdn.net/practice/23719159

代码:

#include <iostream>
#include <string>
using namespace std;string StrCon(const string& a, const string& b)
{string c;int n = a.size(), m = b.size();if (0 == n)    return a;if (0 == m) return b;int i, j;for (i = 0, j = 0; i < n && j < m; ++i, ++j){c += a[i];c += b[i];}while (i < n)c += a[i++];while (j < m)c += b[j++];return c;
}int main()
{string s = "day", t = "time";cout << StrCon(s, t) << endl;system("pause");return 0;
}

输出:

dtaiyme


3. 同构字符串

给定两个字符串 和 t,判断它们是否是同构的。

如果 中的字符可以按某种映射关系替换得到 ,那么这两个字符串是同构的。

每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。

示例 1:

输入:s = "egg", t = "add"
输出:true

示例 2:

输入:s = "foo", t = "bar"
输出:false

示例 3:

输入:s = "paper", t = "title"
输出:true

提示:

  • 可以假设 和 长度相同。

出处:

https://edu.csdn.net/practice/23719160

代码:

#include <bits/stdc++.h>
using namespace std;class Solution
{
public:bool isIsomorphic(string s, string t){vector<int> m(128, -1);for (int i = 0; i < s.size(); ++i){if (m[s[i]] != -1){if (m[s[i]] != t[i])return false;}else{for (auto v : m){if (v == t[i])return false;}m[s[i]] = t[i];}}return true;}
};int main()
{Solution sol;string s = "egg", t = "add";cout << (sol.isIsomorphic(s, t) ? "true" : "false") << endl;s = "foo", t = "bar";cout << (sol.isIsomorphic(s, t) ? "true" : "false") << endl;s = "paper", t = "title";cout << (sol.isIsomorphic(s, t) ? "true" : "false") << endl;return 0;
}

输出:

true
false
true


🌟 每日一练刷题专栏 🌟

持续,努力奋斗做强刷题搬运工!

👍 点赞,你的认可是我坚持的动力! 

🌟 收藏,你的青睐是我努力的方向! 

评论,你的意见是我进步的财富!  

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏

相关文章:

C/C++每日一练(20230325)

目录 1. 搜索插入位置 &#x1f31f; 2. 结合两个字符串 &#x1f31f; 3. 同构字符串 &#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 搜索插入位置 给定一个排序数…...

Linux操作系统ARM指令集与汇编语言程序设计

一、实验目的1.了解并掌握ARM汇编指令集2.应用ARM指令集编写一个程序操控开发板上的LED灯二、实验要求应用ARM汇编指令集编写程序&#xff0c;实现正常状态下开发板上的LED灯不亮&#xff0c;按下一个按键之后开发板上的LED灯进入流水灯模式。三、实验原理四个LED灯的电路如下图…...

计网之HTTP协议和Fiddler的使用

文章目录一. HTTP概述和fidder的使用1. 什么是HTTP2. 抓包工具fidder的使用2.1 注意事项2.2 fidder的使用二. HTTP协议格式1. HTTP请求格式1.1 基本格式1.2 认识URL1.3 方法2. 请求报头关键字段3. HTTP响应格式3.1 基本格式3.2 状态码一. HTTP概述和fidder的使用 1. 什么是HTT…...

sql性能优化:MS-SQL(SQL Server)跟踪日志信息结果列字段说明,MSSQL的列字段说明(column)

sql性能优化&#xff1a;MS-SQL&#xff08;SQL Server&#xff09;跟踪日志信息结果列字段说明&#xff0c;MSSQL的列字段说明&#xff08;column&#xff09; 参考&#xff1a; SQL:BatchCompleted 事件类 | Microsoft Learn SQL 跟踪 | Microsoft Learn sp_trace_setevent (…...

DNS主从复制

#前提准备&#xff1a;关闭SElinux 关闭防火墙 时间同步 #环境说明&#xff1a;Centos7 #ip地址&#xff1a;dns-master&#xff1a;10.0.0.100 dns-slave&#xff1a;10.0.0.103 web&#xff1a;10.0.0.101 主DNS服务配置 1.安装软件包&#xff1a; yum install bind -…...

常见的js加密/js解密方法

常见的js加密/js解密方法 当今互联网世界中&#xff0c;数据安全是至关重要的。为了保护用户的隐私和保密信息&#xff0c;开发人员必须采取适当的安全措施。在前端开发中&#xff0c;加密和解密技术是一种常见的数据安全措施&#xff0c;其中 JavaScript 是最常用的语言之一。…...

6 python函数

函数 在实现某个功能对应的代码的时候&#xff0c;如果将实现功能对应的函数放到函数中&#xff0c;那么下一次再需要这个功能的时候&#xff0c;就可以不用再写这个功能对应的代码&#xff0c;直接调用这个功能对应的函数。 1.什么是函数 函数就是实现某一特点功能的代码的封装…...

7.避免不必要的渲染

目录 1 组件更新机制 2 虚拟DOM配合Diff算法 3 减轻state 4 shouldComponentUpdate() 4.1 基本使用 4.2 使用参数 5 纯组件 5.1 基本使用 5.2 纯组件的比较方法 shallow compere 1 组件更新机制 当父组件重新渲染时&#xff0c;父组件的所有子组件也会重新…...

国产化大趋势下学习linux的必要性

由于国际上的一些国家的制裁和威胁。最近几年国产化大趋势慢慢的兴起&#xff0c;我们国产化硬件的需求越来越大。对国产操作系统的需求也越来越多&#xff0c;那么我们一直用的Windows系统为什么不用了呢&#xff1f;众所周知的原因&#xff0c;不管是最新的Windows11还是正值…...

浅谈虚树

问题引入 你是否遇到过下面这种问题&#xff1a; SDOI2011 消耗战 在一场战争中&#xff0c;战场由 nnn 个岛屿和 n−1n-1n−1 个桥梁组成&#xff0c;保证每两个岛屿间有且仅有一条路径可达。现在&#xff0c;我军已经侦查到敌军的总部在编号为1的岛屿&#xff0c;而且他们已…...

裸机条件下写一个基于时间片轮转的多任务并发程序

目录前言A. 使用RTOSB.裸机多任务并发前言 在学习各种MCU的时候&#xff0c;都是用在main函数里写一个while(1){/* 执行代码 */}&#xff0c;这种方式只能一个函数运行完以后再运行另一个函数。 假设需求控制多个模块&#xff0c;如显示屏幕信息的同时控制电机&#xff0c;还要…...

RK3588 系统定制开关机动画

平台&#xff1a;ITX-3588J, ROC-RK3588S-PC 系统&#xff1a;Android12.0 作者&#xff1a;jpchen & zzz 一. 功能描述 定制自己的开机动画和关机动画 二. 功能实现 1.开启功能 修改device/rockchip/common/BoardConfig.mk文件 BOOT_SHUTDOWN_ANIMATION_RINGINGtrue2.…...

水文-编程命令快查手册

前言 脑子里面记不住一些命令&#xff0c;每次遇到都得查下。我经常在三个实体电脑&#xff0c;windows/uos/ubuntu不同系统上编程。 所以web版本的笔记查看起来方便点。这里报错下。 二级标题 cmake windows在cmake --build的时候&#xff0c;使用–config&#xff0c;指定…...

如何优雅编写测试用例

当你学会了如何设计测试用例之后&#xff0c;接下来便是开始用例的编写。 在设计阶段&#xff0c;更准确的说应该是识别测试点的过程&#xff0c;而编写阶段则是将测试点细化成一条条测试用例的过程&#xff0c;有了比较全的用例场景后&#xff0c;如何让别人更舒服、更方便、…...

[入门必看]数据结构2.3:线性表的链式表示

[入门必看]数据结构2.3&#xff1a;线性表的链式表示第二章 线性表2.3 线性表的链式表示知识总览2.3.1 单链表的定义2.3.2_1 单链表的插入删除2.3.2_2 单链表的查找2.3.2_3 单链表的建立2.3.3 双链表2.3.4 循环链表2.3.5 静态链表2.3.6 顺序表和链表的比较2.3.1 单链表的定义单…...

Golang流媒体实战之二:回源

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码)&#xff1a;https://github.com/zq2599/blog_demos 本篇概览 今天的实战是流传输过程中的常见功能&#xff1a;回源如下图&#xff0c;lal(源站)和lal(拉流节点)代表两台电脑&#xff0c;上面都部署了lalVLC在…...

webgl——给场景添加光

文章目录前言光照理论介绍光照效果光源类型反射光颜色向场景中添加光向场景中添加环境光和点光源逐片元光照——更加逼真总结前言 在之前的学习中已经将三维物体添加到了场景中&#xff0c;但是并没有在场景中使用光&#xff0c;照可以使模型更具有立体感&#xff0c;本文主要…...

Vue实战【Vue项目开发时常见的几个错误】

目录&#x1f31f;前言&#x1f31f;安装超时(install timeout)&#x1f31f;can’t not find ‘xxModule’ - 找不到某些依赖或者模块&#x1f31f;data functions should return an object&#x1f31f;给组件内的原生控件添加事件,不生效了&#x1f31f;我在函数内用了this.…...

【多线程】常见的锁策略

✨个人主页&#xff1a;bit me&#x1f447; ✨当前专栏&#xff1a;Java EE初阶&#x1f447; ✨每日一语&#xff1a;老当益壮&#xff0c;宁移白首之心&#xff1b;穷且益坚&#xff0c;不坠青云之志。 目 录&#x1f3f3;️一. 乐观锁 vs 悲观锁&#x1f3f4;二. 普通的互斥…...

如何让虚拟机里的Ubuntu通过连接手机USB数据线上网

目录 一 前言 二 Windows联网方法 三 Ubuntu联网方法 一 前言 最近遇到了这样一个问题&#xff0c;有一台台式机&#xff0c;地插网口无法访问外网&#xff0c;周边也没有无线路由器&#xff0c;要访问外网&#xff0c;该如何做&#xff1f;进一步的&#xff0c;这台台式机…...

当你能证明你的代码能带来流量时,你就永远不会被视为“垃圾”。

在商业世界里&#xff0c;代码本身没有价值&#xff0c;代码产生的结果才有价值。 如果你写的代码逻辑完美、架构优雅、注释清晰&#xff0c;但用户不用、业务不增长&#xff0c;那它在老板眼里就是“成本”&#xff0c;甚至是“垃圾”。如果你写的代码哪怕有些粗糙、用了“笨办…...

2026 工程指南:为什么 AWS Bedrock + Claude 4.6 正在成为多 Agent 协作的底层首选?

进入 2026 年第一季度&#xff0c;大模型领域的竞争已经从“单纯的参数规模”转向了“端到端的工程效率”。随着 GPT-5.4 陷入推理成本高企的泥潭&#xff0c;Anthropic 联手亚马逊发布的 Claude 4.6 托管方案&#xff0c;正在通过 Amazon Bedrock 平台迅速收割企业级市场。作为…...

基于训练RBF神经网络的车速信息时序预测Matlab模型

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和…...

OpenRocket:模型火箭仿真的全流程技术解决方案

OpenRocket&#xff1a;模型火箭仿真的全流程技术解决方案 【免费下载链接】openrocket Model-rocketry aerodynamics and trajectory simulation software 项目地址: https://gitcode.com/GitHub_Trending/op/openrocket OpenRocket作为一款开源的模型火箭仿真软件&…...

LFM2.5-1.2B-Thinking-GGUF应用场景:智能硬件说明书问答机器人落地实践

LFM2.5-1.2B-Thinking-GGUF应用场景&#xff1a;智能硬件说明书问答机器人落地实践 1. 项目背景与需求 在智能硬件领域&#xff0c;产品说明书往往存在以下痛点&#xff1a; 内容专业术语多&#xff0c;普通用户难以理解纸质说明书查找信息效率低不同型号产品差异导致用户混…...

OpenClaw跨平台同步:GLM-4.7-Flash配置在多设备间保持一致

OpenClaw跨平台同步&#xff1a;GLM-4.7-Flash配置在多设备间保持一致 1. 为什么需要跨设备同步OpenClaw配置 上周我在出差时遇到一个尴尬场景&#xff1a;笔记本上的OpenClaw突然无法响应飞书消息&#xff0c;而所有配置都留在办公室的台式机上。这让我意识到——当AI助手成…...

别再被ToggleGroup坑了!手把手教你写一个不自动选首项的CustomToggleGroup组件(附完整代码)

深度定制Unity ToggleGroup&#xff1a;打造无默认选中行为的智能组件 引言 在Unity UI开发中&#xff0c;ToggleGroup组件是构建选项卡式界面的常见选择&#xff0c;但许多开发者都遇到过这样的困扰&#xff1a;当ToggleGroup激活时&#xff0c;系统总会自动选中第一个Toggle项…...

3天快速掌握RCWA光学仿真:从零到一的完整高效指南

3天快速掌握RCWA光学仿真&#xff1a;从零到一的完整高效指南 【免费下载链接】Rigorous-Coupled-Wave-Analysis modules for semi-analytic fourier series solutions for Maxwells equations. Includes transfer-matrix-method, plane-wave-expansion-method, and rigorous c…...

ai辅助开发:告诉快马你的想法,自动生成jdk17最佳实践代码

今天想和大家分享一个特别实用的开发技巧——如何用AI辅助快速掌握JDK17的新特性。作为一个经常需要升级Java版本的开发者&#xff0c;我发现每次版本更新都要花大量时间学习新语法&#xff0c;直到遇到了InsCode(快马)平台的AI辅助功能。 传统开发方式的痛点 以前用JDK8写代码…...

光纤布拉格光栅(FBG)笔记【2】:传感机制与布拉格波长调谐分析

1. 光纤布拉格光栅的传感机制揭秘 第一次接触光纤布拉格光栅(FBG)传感时&#xff0c;我完全被它"以光测万物"的能力震撼了。这根比头发还细的光纤&#xff0c;竟然能精准感知温度、应变等物理量的变化。经过多次实验验证&#xff0c;我发现它的核心秘密就藏在布拉格波…...