2024年前端最全leetcode面试经典算法题——1,2024年“金三银四”来袭

文末

技术是没有终点的,也是学不完的,最重要的是活着、不秃。

零基础入门的时候看书还是看视频,我觉得成年人,何必做选择题呢,两个都要。喜欢看书就看书,喜欢看视频就看视频。

最重要的是在自学的过程中,一定不要眼高手低,要实战,把学到的技术投入到项目当中,解决问题,之后进一步锤炼自己的技术。

自学最怕的就是缺乏自驱力,一定要自律,杜绝“三天打鱼两天晒网”,到最后白忙活一场。

高度自律的同时,要保持耐心,不抛弃不放弃,切勿自怨自艾,每天给自己一点点鼓励,学习的劲头就会很足,不容易犯困。

技术学到手后,找工作的时候一定要好好准备一份简历,不要无头苍蝇一样去海投简历,容易“竹篮打水一场空”。好好的准备一下简历,毕竟是找工作的敲门砖。

拿到面试邀请后,在面试的过程中一定要大大方方,尽力把自己学到的知识舒适地表达出来,不要因为是自学就不够自信,给面试官一个好的印象,面试成功的几率就会大很多,加油吧,骚年!

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

    else:
        return True

if name == ‘__main__’:
s = Solution()
a = “abc”
b = “ahbgdc”
print(s.isSubsequence(a, b))


C++代码



#include

using namespace std;

class Solution {
public:
bool isSubsequence(string s, string t) {
// size()获取字符的长度
int s_len = s.size();
int t_len = t.size();
int index = 0;
if(s_len > t_len) return false;
if(s_len == t_len){
if(s == t) return true;
else return false;
}
// substr()第一个参数是起始下标,第二个元素是长度,该函数是返回一个字符串的子串
// find()函数是找字符串中是否包含某个字符,若包含则返回下标,否则返回std::string::npos
for(int i = 0; i < s_len; i++){
if (t.substr(index, t_len - index).find(s[i]) != std::string::npos)
{
index = t.substr(index, t_len - index).find(s[i]) + 1 + index;

            }
        else
            return false;
    }
    return true;

}

};

int main()
{
string a = “abc”;
string b = “ahbgdc”;
Solution s;

cout << s.isSubsequence(a, b) << endl;
return 0;

}


### 383. 赎金信


给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。


如果可以,返回 true ;否则返回 false 。


magazine 中的每个字符只能在 ransomNote 中使用一次。


**示例 1:**



> 
> 输入:ransomNote = “a”, magazine = “b”  
>  输出:false
> 
> 
> 


**示例 2:**



> 
> 输入:ransomNote = “aa”, magazine = “ab”  
>  输出:false
> 
> 
> 


**示例 3:**



> 
> 输入:ransomNote = “aa”, magazine = “aab”  
>  输出:true
> 
> 
> 


**提示:**


* 1 <= ransomNote.length, magazine.length <= 10^5
* ransomNote 和 magazine 由小写英文字母组成  
 Python代码



class Solution(object):
def canConstruct(self, ransomNote, magazine):
“”"
:type ransomNote: str
:type magazine: str
:rtype: bool
“”"
# 思路:遍历ransomNote的元素c,每次删除magazine中的c。
# 若magazine长度 - ransomNote长度 = 删除后的magazine长度,则返回True
r_len = len(ransomNote)
m_len = len(magazine)
for i in range(r_len):
magazine = magazine.replace(ransomNote[i], “”, 1) # 删除一个字符
if m_len - r_len == len(magazine):
return True
else:
return False

if name == ‘__main__’:
s = Solution()
ransomNote = “a”
magazine = “b”
print(s.canConstruct(ransomNote, magazine))


C++代码



#include

using namespace std;

class Solution {
public:
bool canConstruct(string ransomNote, string magazine) {
int r_len = ransomNote.size();
int m_len = magazine.size();
for(int i = 0; i < r_len; i++){
if (magazine.find(ransomNote[i]) != std::string::npos)
{
int index = magazine.find(ransomNote[i]);
// erase()函数第一个参数是起始下标,第二个参数是要删除的长度,该函数用于删除字符串中的字串
magazine.erase(index, 1);
}

    }
    if (m_len - r_len == magazine.size()) return true;
    else return false;

}

};

int main()
{
string a = “aa”;
string b = “ab”;
Solution s;

cout << s.canConstruct(a, b) << endl;
return 0;

}


### 205. 同构字符串


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


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


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


**示例 1:**



> 
> 输入:s = “egg”, t = “add”  
>  输出:true
> 
> 
> 


**示例 2:**



> 
> 输入:s = “foo”, t = “bar”  
>  输出:false
> 
> 
> 


**示例 3:**




### 最后

**文章到这里就结束了,如果觉得对你有帮助可以点个赞哦**

**[开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://bbs.csdn.net/topics/618166371)**

![](https://img-blog.csdnimg.cn/img_convert/ead6932ed92b62313d384cc8bd5bf358.webp?x-oss-process=image/format,png)





> 
> 输入:s = “foo”, t = “bar”  
>  输出:false
> 
> 
> 


**示例 3:**




### 最后

**文章到这里就结束了,如果觉得对你有帮助可以点个赞哦**

**[开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://bbs.csdn.net/topics/618166371)**

[外链图片转存中...(img-S9FkZgUa-1714983153182)]



  • 10
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值