当前位置: 首页 > news >正文

如何在八戒网便宜做网站百度统计工具

如何在八戒网便宜做网站,百度统计工具,微信游戏网站源码怎么做,网站如何做信誉认证涉及知识点 有序集合 字符串 题目 给你三个字符串 a ,b 和 c , 你的任务是找到长度 最短 的字符串,且这三个字符串都是它的 子字符串 。 如果有多个这样的字符串,请你返回 字典序最小 的一个。 请你返回满足题目要求的字符串。…

涉及知识点

有序集合 字符串

题目

给你三个字符串 a ,b 和 c , 你的任务是找到长度 最短 的字符串,且这三个字符串都是它的 子字符串 。
如果有多个这样的字符串,请你返回 字典序最小 的一个。
请你返回满足题目要求的字符串。
注意:
两个长度相同的字符串 a 和 b ,如果在第一个不相同的字符处,a 的字母在字母表中比 b 的字母 靠前 ,那么字符串 a 比字符串 b 字典序小 。
子字符串 是一个字符串中一段连续的字符序列。
示例 1:
输入:a = “abc”, b = “bca”, c = “aaa”
输出:“aaabca”
解释:字符串 “aaabca” 包含所有三个字符串:a = ans[2…4] ,b = ans[3…5] ,c = ans[0…2] 。结果字符串的长度至少为 6 ,且"aaabca" 是字典序最小的一个。
示例 2:
输入:a = “ab”, b = “ba”, c = “aba”
输出:“aba”
解释:字符串 “aba” 包含所有三个字符串:a = ans[0…1] ,b = ans[1…2] ,c = ans[0…2] 。由于 c 的长度为 3 ,结果字符串的长度至少为 3 。“aba” 是字典序最小的一个。
参数范围
1 <= a.length, b.length, c.length <= 100
a ,b ,c 只包含小写英文字母。

分析

合并两个字符串

假定a在前,b在后。有如下两种情况。

a包括ba=“ab”,b=“a”,合并后为"ab"
a的后缀和b的前缀相同,以下简称公共后前缀a=“ab”,b=“bc”,合并后"abc"

分两部

第一步第二步
ababc
abc(ab)
acacb
acb(ac)
babac
bac(ba)
bcbca
bca(bc)
cacab
cab(ca)
cbcba
cba(cb)
共12种情况

abc和a(bc)相同

abc和a(bc)相比,效果相同或更好,所以无需考虑a(bc)等。

bc是第一种情况abc就是ab,a(bc)也是
ab是第一种情况这种情况不符合,abc=ac a(bc)等于a(xc),如果xc是的前缀是a的后缀,且比x长,那c也是后缀,两者节省的长度相同。如果xc的前缀不是a的后缀,则c的前缀有可能是a的后缀,这种情况下:abc优于a(bc)。
ab和bc都是第二种情况abc = a减去ab公共后前缀+b+c减去bc公共后前缀 a(bc)也是

变量函数解释

m_setStrs记录备选答案,自动根据长度和字典序排序
next_permutation下一个顺序,初始要排序,使得初始最小序

代码

class Solution {
public:string minimumString(string a, string b, string c) {vector<string> strs = { a,b,c };sort(strs.begin(), strs.end());do{string tmp = Union(strs[0], strs[1]);tmp = Union(tmp, strs[2]);m_setStrs.emplace(tmp.length(), tmp);} while (next_permutation(strs.begin(), strs.end()));return m_setStrs.begin()->second;}string Union(const string& a, const string& b){if (-1 != a.find(b)){return a;}int len = min(a.length(), b.length());int i = len;for (; i > 0; i--){if (a.substr(a.length() - i) == b.substr(0, i)){break;}}return a.substr(0, a.length() - i) + b;}std::set<std::pair<int, string>> m_setStrs;
};

旧版代码

class Solution {
public:
string minimumString(string a, string b, string c) {
vector strs = { a,b,c };
sort(strs.begin(), strs.end());
if (-1 != strs[1].find(strs[0]))
{
strs[0] = “”;
}
if (-1 != strs[2].find(strs[1]))
{
strs[1] = “”;
}
do
{
Union(strs[0], strs[1], strs[2]);
} while (next_permutation(strs.begin(), strs.end()));
return m_setStrs.begin()->second;
}
void Union(const string& a, const string& b, const string& c)
{
string tmp = Union(a, b);
tmp = Union(tmp, c);
m_setStrs.emplace(tmp.length(), tmp);
}
string Union(const string& a, const string& b)
{
if (-1 != a.find(b))
{
return a;
}
int len = min(a.length(), b.length());
int i = len;
for (; i > 0; i–)
{
if (a.substr(a.length()-i)== b.substr(0,i))
{
break;
}
}
return a.substr(0, a.length() - i) + b;
}
std::set<std::pair<int, string>> m_setStrs;
};

旧版代码二

class Solution {
public:
string minimumString(string a, string b, string c) {
Union(a, b, c);
Union(a, c, b);
Union(b, a, c);
Union(b, c, a);
Union(c, a, b);
Union(c, b, a);
return m_setStrs.begin()->second;
}
void Union(const string& a, const string& b,const string& c)
{
string tmp = Union(a, b);
tmp = Union(tmp, c);
m_setStrs.emplace(tmp.length(),tmp);
tmp = Union(b, c);
tmp = Union(a, tmp);
m_setStrs.emplace(tmp.length(), tmp);
}
string Union(const string& a, const string& b)
{
if (-1 != a.find(b))
{
return a;
}
int len = min(a.length(), b.length());
int i = len;
for (; i > 0; i–)
{
if (Same(a, b, i))
{
break;
}
}
return a.substr(0, a.length() - i) + b;
}
bool Same(const string& a, const string& b, int len)
{
for (int i = 0; i < len; i++)
{
if (a[a.length() - len + i] != b[i])
{
return false;
}
}
return true;
}
std::set<std::pair<int,string>> m_setStrs;
};

2023年8月份代码

class Solution {
public:
string minimumString(string a, string b, string c) {
Cat(a, b, c);
Cat(a, c, b);
Cat(b, a, c);
Cat(b, c, a);
Cat(c, a, b);
Cat(c, b, a);
string strRet = *m_setCan.begin();
for (const auto& it : m_setCan )
{
if (it.length() < strRet.length())
{
strRet = it;
}
}
return strRet;
}
void Cat(string a, string b, string c)
{
std::set setCan;
Cat(setCan, a, b);
for (const auto& it : setCan)
{
Cat(m_setCan, it, c);
}
}
void Cat(std::set& setCan,string a, string b)
{
int i = min(a.length(), b.length());
for (; i >= 1 ; i–)
{
const auto tmp1 = a.substr(a.length() - i);
const auto tmp2 = b.substr(0, i);
if (tmp1 == tmp2)
{
setCan.emplace(a + b.substr(i));
}
}
setCan.emplace(a + b);
if (-1 != a.find(b))
{
setCan.emplace(a);
}
}
std::set m_setCan;
};

扩展阅读

视频课程

有效学习:明确的目标 及时的反馈 拉伸区(难度合适),可以先学简单的课程,请移步CSDN学院,听白银讲师(也就是鄙人)的讲解。
https://edu.csdn.net/course/detail/38771

如何你想快

速形成战斗了,为老板分忧,请学习C#入职培训、C++入职培训等课程
https://edu.csdn.net/lecturer/6176

相关下载

想高屋建瓴的学习算法,请下载《闻缺陷则喜算法册》doc版
https://download.csdn.net/download/he_zhidan/88348653

洒家想对大家说的话
闻缺陷则喜是一个美好的愿望,早发现问题,早修改问题,给老板节约钱。
墨家名称的来源:有所得以墨记之。
如果程序是一条龙,那算法就是他的是睛

测试环境

操作系统:win7 开发环境: VS2019 C++17
或者 操作系统:win10 开发环境:

VS2022 C++17

http://www.hkea.cn/news/438199/

相关文章:

  • 网站建设的仿站seo顾问收费
  • 珠宝行业做网站的好处株洲seo排名
  • java web开发网站开发cpa推广接单平台
  • 广西南宁网络营销网站网站权重优化
  • 黄山网站设计公司营销网站建设多少钱
  • 网站建设招标评分表湖南关键词优化推荐
  • 淘宝上成都网站建设如何制作视频网站
  • 最吃香的男生十大手艺5g网络优化
  • 河源哪里做网站网络项目怎么推广
  • 网站闭关保护怎么做广州百度seo 网站推广
  • 可以在线做动图的网站近期重大新闻事件
  • 伊犁州建设局网站怎么做微信小程序
  • 做网站需要买主机那新媒体营销方式有几种
  • 网络推广seo公司seo排名的方法
  • 南山做网站多少钱百度资讯
  • 西安哪里有做网站的小学生收集的新闻10条
  • 做游戏网站有几个要素seo网站关键词优化报价
  • 蓬业东莞网站建设技术支持东莞做网站公司首选
  • 网站版式设计获客渠道有哪些
  • 今日军事新闻简短扬州seo优化
  • 国外好看的教育类网站模板下载东莞做网站最好的是哪家
  • 微擎与wordpress快速优化seo软件推广方法
  • 英文网站设计哪家好免费网站搭建
  • 网站建设公司 销量深圳谷歌seo公司
  • 新蔡哪有做网站建设的全球疫情今天最新消息
  • 怎么做平台网站百度seo报价方法
  • 帮人做网站 怎么收费怎么用网络推广
  • 网站排名优化建设百度广告投放技巧
  • 文件服务器网站搭建教程好的竞价托管公司
  • 黑龙江省城乡和住房建设厅网站首页百度链接地址