算法通关村番外篇-LeetCode编程从0到1系列一

news2024/11/18 9:37:51

大家好我是苏麟 , 今天开始带来LeetCode编程从0到1系列 .

编程基础 0 到 1 , 50 题掌握基础编程能力

大纲

    • 1768.交替合并字符串
    • 389. 找不同
    • 28. 找出字符串中第一个匹配项的下标
    • 283. 移动零
    • 66. 加一

1768.交替合并字符串

描述 :

给你两个字符串 word1 和 word2 。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。
返回 合并后的字符串 。

题目 :

  1. 交替合并字符串

LeetCode : 交替合并字符串

在这里插入图片描述

代码 :

class Solution {
    public String mergeAlternately(String word1, String word2) {
        int m = word1.length(), n = word2.length();
        int i = 0, j = 0;

        StringBuilder ans = new StringBuilder();
        while (i < m || j < n) {
            if (i < m) {
                ans.append(word1.charAt(i));
                ++i;
            }
            if (j < n) {
                ans.append(word2.charAt(j));
                ++j;
            }
        }
        return ans.toString();
    }
}

389. 找不同

描述 :

给定两个字符串 s 和 t ,它们只包含小写字母。

字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。

请找出在 t 中被添加的字母。

题目 :
LeetCode 389. 找不同 :
找不同
在这里插入图片描述
分析 :
这道题用位运算还是比较好做的 .

代码 :

class Solution {
    public char findTheDifference(String s, String t) {
        int n = 0;
        int a = s.length();
        int b = t.length();
        for(int i = 0 ;i < a;i++){
            n ^= s.charAt(i);
        }
        for(int i = 0 ;i < b;i++){
            n ^= t.charAt(i);
        }
        return  (char) n;
    }
}

28. 找出字符串中第一个匹配项的下标

描述 ;
给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。

題目 :
LeetCode : 找出字符串中第一个匹配项的下标
在这里插入图片描述

偷懒的代码 :

class Solution {
    public int strStr(String haystack, String needle) {
        return haystack.indexOf(needle);
    }
}

暴力代码 :

class Solution {
    public int strStr(String haystack, String needle) {
        int n = haystack.length(), m = needle.length();
        for (int i = 0; i + m <= n; i++) {
            boolean flag = true;
            for (int j = 0; j < m; j++) {
                if (haystack.charAt(i + j) != needle.charAt(j)) {
                    flag = false;
                    break;
                }
            }
            if (flag) {
                return i;
            }
        }
        return -1;
    }
}

283. 移动零

描述 :

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

请注意 ,必须在不复制数组的情况下原地对数组进行操作。

题目 :

LeetCode 移动零
在这里插入图片描述
分析 :

这道题双指针就解决掉了 .

代码 :

class Solution {
    public void moveZeroes(int[] nums) {
        int n = nums.length;
        int left = 0;
        int right = 0;
        while(right < n){
            if(nums[right] != 0){
                swap(nums,left,right);
                left++;
            }
            right++;
        }

        Arrays.toString(nums);
    }
    public void swap(int[] arr,int a,int b){
        int temp = arr[a];
        arr[a] = arr[b];
        arr[b] = temp;
    }
}

66. 加一

描述 :

给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。

最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。

你可以假设除了整数 0 之外,这个整数不会以零开头。

题目 :
LeetCode 加一
在这里插入图片描述

代码 :

class Solution {
    public int[] plusOne(int[] digits) {
        int len = digits.length;
        for(int i = len - 1;i >= 0 ;i--){
            digits[i]++;
            digits[i] %= 10;
            if(digits[i] != 0){
                return digits;
            }
        }
        int[] arr = new int[len + 1];
        arr[0] = 1;
        return arr;
    }
}

这期就到这里 , 下期见!

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

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

相关文章

EasyExcel简单实例(未完待续)

EasyExcel简单实例 准备工作例1&#xff1a;简单读取 Student 表例2&#xff1a;简单读取 Student 表 准备工作 导入easyExcel依赖&#xff0c;注意版本&#xff1a; <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactI…

2024.01.09.Apple_UI_BUG

我是软件行业的&#xff0c;虽然不是手机设计的&#xff0c;但是这个设计真的导致经常看信息不完整&#xff0c;要下拉的。 特别读取文本或者其他文件的时候&#xff0c;上面有个抬头就是看不到&#xff0c;烦&#xff0c;体验感很差

Vue项目nginx部署到线上,访问时加前缀解决方案

一、业务场景&#xff1a; 最近项目开发完了&#xff0c;需要部署一个测试版本和正式版本到线上&#xff0c;测试版本前面需要加一个dev前缀&#xff0c;遇到了一些坑&#xff0c;分享给大家 二、目前效果 三、具体实现步骤&#xff1a; &#xff08;1&#xff09;实现静态文…

SAP PP配置学习(五)

查找 四、 其它 设置 MM 过帐号码范围 定义凭证号码范围 OB52 打开期间 MMPV 开帐 &#xff08;下篇见&#xff09;

UE5 UE4 修复GPU驱动程序崩溃

原贴链接&#xff1a;https://mp.weixin.qq.com/s/e5l9XtfwEFWgwhHi1b2idg UE5 UE4在处理含有大量图形的项目时&#xff0c;你有可能会遇到GPU崩溃 可以通过修改注册表&#xff0c;修复崩溃。 GPU崩溃情况概述 UE5 UE4在处理含有大量图形的项目时&#xff0c;你有可能会遇到G…

3d云渲染平台哪个好?如何挑选好的云渲染平台?

3D渲染耗时耗力&#xff0c;很多CG从业者都会转向云渲染平台以提高效率和质量&#xff0c;降低成本。云渲染能让用户通过网络上传项目&#xff0c;借助平台提供的强大渲染集群完成渲染&#xff0c;而无需购买设备&#xff0c;所以选择一个好的云渲染平台非常重要。那么哪个云渲…

【复习】人工智能 第 8 章 人工神经网络及其应用

因为计算牵扯到导数&#xff0c;所以这章难的部分不会考太难。 人工神经网络是对人脑或生物神经网络若干基本特性的抽象和模拟。 深度学习是神经网络的发展。 人工智能曾经历过很长一段时间的停滞不前。 浩瀚的宇宙中&#xff0c;也许只有包含数千忆颗星球的银河系的复杂性能够…

HTML音乐播放器带歌词跟随效果源码附注释

音乐播放器效果截图 <!doctype html><!--声明html版本编写指令 H5--> <html><head><!--声明页面编码 uft-8 国际编码--><meta charset

Open CASCADE学习|非线性方程组

非线性方程组是一组包含非线性数学表达式的方程&#xff0c;即方程中含有未知数的非线性项。解这类方程组通常比解线性方程组更为复杂和困难。 非线性方程组在很多领域都有应用&#xff0c;例如物理学、工程学、经济学等。解决非线性方程组的方法有很多种&#xff0c;包括数值…

在Linux上搭建Maven仓库

目录 一、下载安装包二、安装maven三、修改配置文件settings.xml四、配置环境变量五、测试maven是否可用 一、下载安装包 我在这里为大家准备好了apache-maven-3.5.0-bin.tar.gz&#xff0c;百度网盘下载链接如下&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1bGun…

已解决:UnicodeDecodeError: ‘gb2312‘ codec can‘t decode byte 0xe5 in position 1

起因 python 读文件报错。这个报错不是来自open而是read函数&#xff08;请看最后部分&#xff09;。 原因&#xff1a;文件编码不一致。 比如文件本身编码为 gb2312&#xff0c;而 python默认以 utf-8 编码打开&#xff0c;报错。 解决 初级&#xff1a;以通用的 utf-8 编码…

【Spring Boot】SpringBoot maven 项目创建图文教程

创建一个Spring Boot项目并使用Maven进行构建是一项相对简单的任务。以下是使用IntelliJ IDEA创建Spring Boot Maven项目的详细教程&#xff1a; 步骤 1&#xff1a;安装 IntelliJ IDEA 确保你已经安装了最新版本的 IntelliJ IDEA。你可以从官方网站下载并安装。 步骤 2&am…

Python教程(21)——面向对象编程的三大特性

面向对象三大特性 封装继承多态 在Python中&#xff0c;面向对象编程是一种核心的编程思想。Python被称为“一切皆对象”的语言&#xff0c;因为在Python中&#xff0c;几乎所有的数据都被视为对象。这包括数字、字符串、列表、函数等基本类型&#xff0c;还有自定义的类和对象…

安卓(雷电)模拟器清除屏幕密码

1、设置磁盘可写 启动模拟器&#xff0c;然后在模拟器的设置界面&#xff0c;设置磁盘共享为可写入&#xff0c;重启模拟器&#xff0c;如下图&#xff1a; 2、找到模拟器目录 返回桌面&#xff0c;右键模拟器图标&#xff0c;打开文件所在目录&#xff0c;如下图&#xff1a…

【Spring Cloud】Gateway组件的三种使用方式

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《Spring Cloud》。&#x1f3af;&#x1f3af; &am…

【2024系统架构设计】 系统架构设计师第二版-面向服务架构设计理论与实践

目录 一 概述 二 SOA的参考架构 三 SOA主要协议和规范 四 SOA设计标准和原则 五 SOA的设计模式 六 SOA的构建和实施 ​

【前端】前后端的网络通信基础操作(原生ajax, axios, fetch)

概述 前后端网络请求工具 原生ajaxfetch apiaxios GET和POST请求 get只能发纯文本 post可以发不同类型的数据&#xff0c;要设置请求头&#xff0c;需要告诉服务器一些额外信息 测试服务器地址 有一些公共的测试 API 可供学习和测试用途。这些 API 允许你发送 HTTP 请求…

浏览器不支持 css 中 :not 表达式的解决方法

问题 使用 :not 表达式的样式在不同浏览器中存在不生效的问题。 原因 不生效是因为浏览器版本较低所导致的。&#xff08;更多详细信息请看&#xff1a;MDN&#xff09; 解决方法 初始写法&#xff1a; .input-group:not(.user-name, .user-passwork){width: auto; }改成…

基于jsp的在线求职招聘信息系统 设计与实现

当前企业求职招聘的方式更多是通过传统的线下招聘会或职业介绍所来实现的&#xff0c;其不但受众具有很大的局限性&#xff0c;而且往往不可能在短时间内招聘的需要的人才。而互联网的普及为企业求职招聘的方式带来了翻天覆地的改变。通过互联网将招聘信息进行发布可以在短时间…

(1)(1.13) SiK无线电高级配置(五)

文章目录 前言 10 可用频率范围 11 DUTY_CYCLE 设置 12 低延迟模式 13 先听后说 (LBT) 14 升级无线电固件 15 MAVLink协议说明 前言 本文提供 SiK 遥测无线电(SiK Telemetry Radio)的高级配置信息。它面向"高级用户"和希望更好地了解无线电如何运行的用户。 1…