面试日记|小米汽车
小米汽车
问题#
方法#
思路:滑动窗口法,具体见:C语言中的窗口滑动技术
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int lengthOfLongestSubstring(char* s) {
if (s == NULL)
return 0;
int len = strlen(s);
char* tmp = (char*)calloc(len, 1);
int right = 0; // 当前字符串长度
int left = 0; // 控制子串起始位置
int maxlength = 0; // 记录最长长度
for (int i = 0; i < len; i++)
{
char* p = strchr(tmp + left, s[i]);//这里需要注意的一点是字符必须先判断后复制
tmp[right] = s[i]; //逐个遍历,存储
right++;
if (p) // 如果该字符已存在,就跳到前面重复字符的下一个位置
{
left = p - tmp + 1; //p指针后一位
}
int curlength = right - left; // 当前子串长度
if (maxlength < curlength)// 找最长
{
maxlength = curlength;
}
}
free(tmp);
return maxlength;
}
int main()
{
char *s = "JQJQKAQ312";
int k = lengthOfLongestSubstring(s);
printf("k=%d\n", k);
return 0;
}
其他#
-
嵌入式开发:ARM、X86、Linux
-
哈希函数特性:不可逆,输出固定长度的值
-
unorderd_set
unordered_set 容器,可直译为“无序 set 容器”。即 unordered_set 容器和 set 容器很像,唯一的区别就在于 set 容器会自行对存储的数据进行排序,而 unordered_set 容器不会。
#include <iostream>
#include <string>
#include <unordered_set>
using namespace std;
int main()
{
//创建一个空的unordered_set容器
unordered_set<string> uset;
//给 uset 容器添加数据
uset.insert("http://c.biancheng.net/java/");
uset.insert("http://c.biancheng.net/c/");
uset.insert("http://c.biancheng.net/python/");
//查看当前 uset 容器存储元素的个数
cout << "uset size = " << uset.size() << endl;
//遍历输出 uset 容器存储的所有元素
for (auto iter = uset.begin(); iter != uset.end(); ++iter) {
cout << *iter << endl;
}
return 0;
}
作者:Hang Shao
出处:https://www.cnblogs.com/pam-sh/p/17288064.html
版权:本作品采用「知识共享」许可协议进行许可。
声明:欢迎交流! 原文链接 ,如有问题,可邮件(mir_soh@163.com)咨询.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
2022-04-04 密码算法汇总
2022-04-04 博客园主题记录
2021-04-04 BMP文件格式