2022.6.9 一面
代码题:
给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。
注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。
示例1:
输入: s = "leetcode", wordDict = ["leet", "code"]
输出: true
解释: 返回 true 因为 "leetcode" 可以由 "leet" 和 "code" 拼接成。
示例2:
输入: s = "applepenapple", wordDict = ["apple", "pen"]
输出: true
解释: 返回 true 因为 "applepenapple" 可以由 "apple" "pen" "apple" 拼接成。
注意,你可以重复使用字典中的单词。
示例3:
输入: s = "catsandog", wordDict = ["cats", "dog", "sand", "and", "cat"]
输出: false
解:
#include <iostream>
#include<string>
#include<vector>
using namespace std;
bool StringStartWithWord(string str1, string word) {
int lenStr1 = str1.size(),lenWord = word.size();
if (lenStr1<lenWord)
{
return false;
}
for (int i = 0; i < lenWord; i++)
{
if (str1[i]!=word[i])
{
return false;
}
}
return true;
}
bool wordByDict(string str, vector<string> wordDict) {
int strLen = str.size();
bool canBeComp = false;
if (strLen==0)
{
return true;
}
for (int i = 0; i <strLen ; i++)
{
for (auto word:wordDict)
{
if (StringStartWithWord(str, word)) {
str.substr(word.size());
canBeComp = wordByDict(str, wordDict);
if (canBeComp)
{
return true;
}
}
}
}
return false;
}
void testcase(const string caseName,vector<string> testcase, string testString) {
cout << caseName << ": ";
if (wordByDict(testString, testcase)) {
cout << "true";
}
else {
cout << "false";
}
cout << endl;
}
int main()
{
vector<string> testcase1{
"cats", "dog", "sand", "and", "cat" };
string testString1 = "catsandog";
testcase("Test1", testcase1, testString1);
vector<string> testcase2{
"apple", "pen" };
string testString2 = "applepenapple";
testcase("Test2", testcase2, testString2);
testcase("Test3", vector<string>{
"leet", "code"}, "leetcode");
testcase("Test4", vector<string>{
}, "");
return 0;
}
问题:
1.你对TCP有多少了解,
答了一些例如粘包,tcp基于字节流,tcp可靠传输,tcp滑动窗口,快恢复,慢启动,快速重传,三次握手、四次挥手等等
因为这个问题很模糊,就东一点西一点答了,不知道他具体想问什么,想听到什么
2.你了解TSL协议吗?
= = 答了不了解,
(如果他问我https,我肯定就说了解了,什么加密啊,公钥啊,私钥啊啥的,https就是基于tsl的)
3.TCP是如何保证可靠传输的
滑动窗口、接收方、发送方各自维护一个窗口,重传和ack确认字节等等、
4.TCP的四次挥手涉及哪些状态
我想他应该是想问半关闭,但是他这样问,我不太清楚怎么答…
于是答了一些有的没的
正确答案:
5.HTTP协议是用tcp还是Udp
tcp
6.你对UDP了解多少?
按包传、不可靠传输、udp参数简单
但是我这样说,感觉他不是很满意…不知道错哪了
7.tcp和Udp区别
这个又把上面的1,6重复说了一遍
8.你了解ssl协议吗?
知道有个公钥、私钥加密,远程连接的时候会用到,其他的不知道了,就说不知道
9.你了解RPC吗?
不了解,好像是微服务,
说用过python的aiohttp,就是一个http地址,然后加上路由去访问,返回一个response,类似这样的
(这样说其实也不是很对)
10.接触过接口测试吗?
知道一点……传入参数到访问接口里,然后检查服务器的防御性
11.你了解系统吗?
了解一点,你可以直接问
11.1 你了解linux系统吗?你怎么理解linux系统
我一般就用一些简单指令,ps -ef|阿巴阿巴
,mv
,cp
,chmod
,mkdir
,wget
,tar
,& ./执行一个程序
,·bg
,fg
,jobs
,kill
等等
理解:
1.虚拟内存是基于多级页表,然后页表的实现形式是,前面一些地址是直接地址、然后是间接地址和二级页表等等
2.linux的线程、进程、信号量等等(没有展开说)
3.有epoll啊,poll之类的
具体需要问我哪个方面?
12.你刚才说到了epoll,poll,你知道select吗?他们的区别?
这个看了很多遍了,就照着下面的背诵了
12.1 所以服务器都用epoll多一些?
我说是的
13 其他:
后面问了点我的工作相关的问题,我的现在的工作是游戏功能测试、就随便说了点;
还问了下我的爬虫什么的,在之前的博客里有详细写过,他就简单问了下,现在爬数据还能爬取到吗之类的。
最后问了下我,程序和测试,你怎么看待这两者的工作;遇到程序不执行冒烟测试,你们通常怎么做?
转载:https://blog.csdn.net/qinglingLS/article/details/125210442