面试日记|小米汽车

小米汽车

问题#

image-20230403205932882

方法#

思路:滑动窗口法,具体见: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

参考:C++常用语法——unordered_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)咨询.

posted @   PamShao  阅读(331)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2022-04-04 密码算法汇总
2022-04-04 博客园主题记录
2021-04-04 BMP文件格式
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu