文末
技术是没有终点的,也是学不完的,最重要的是活着、不秃。
零基础入门的时候看书还是看视频,我觉得成年人,何必做选择题呢,两个都要。喜欢看书就看书,喜欢看视频就看视频。
最重要的是在自学的过程中,一定不要眼高手低,要实战,把学到的技术投入到项目当中,解决问题,之后进一步锤炼自己的技术。
自学最怕的就是缺乏自驱力,一定要自律,杜绝“三天打鱼两天晒网”,到最后白忙活一场。
高度自律的同时,要保持耐心,不抛弃不放弃,切勿自怨自艾,每天给自己一点点鼓励,学习的劲头就会很足,不容易犯困。
技术学到手后,找工作的时候一定要好好准备一份简历,不要无头苍蝇一样去海投简历,容易“竹篮打水一场空”。好好的准备一下简历,毕竟是找工作的敲门砖。
拿到面试邀请后,在面试的过程中一定要大大方方,尽力把自己学到的知识舒适地表达出来,不要因为是自学就不够自信,给面试官一个好的印象,面试成功的几率就会大很多,加油吧,骚年!
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
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)]