写点什么

坚持 ARTS-week2

用户头像
王钰淇
关注
发布于: 2020 年 06 月 02 日
坚持ARTS-week2



Algorithm

  • 题目:无重复字符的最长子串

  • 描述:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

  • 示例:

  • 题解:

class Solution {
public:
int lengthOfLongestSubstring(string s) {
int nSize = s.length();
vector<int> vecChar(256, -1);
int nBegin = -1, nMax = 0;
for(int i = 0; i < nSize; ++i)
{
if(vecChar[(int)s[i]] > nBegin)
{
nBegin = vecChar[(int)s[i]];
}
if(nMax < i - nBegin)
nMax = i - nBegin;
vecChar[(int)s[i]] = i;
}
return nMax;
}
};





Review

文章:A New Cross-Platform Open Source C++ Framework

链接:https://preshing.com/20200526/a-new-cross-platform-open-source-cpp-framework/

内容介绍:文章介绍了一个开源的使用C ++构建各种软件的框架--Plywood。包含的内容有:一个在应用程序之间重用代码的工作区,一组内置模块,提供跨平台I / O,容器,过程创建以及运行时反射和序列化系统。Plywood使用CMake,但不必编写任何CMake脚本。像任何基于CMake的项目一样,Plywood工作区具有目标构建文件夹的概念,这些概念与源代码保持隔离,但是在此之上,它还添加了其他一些概念,例如模块,根目标和extern provider。Plywood仓库已配备39个 内置模块。这些模块提供了平台抽象,矢量数学,JSON解析,音频和图像处理等功能。当然,所有模块都是可选的,因此,如果特定的模块不适合需求,则不必使用它。这个开源框架作者用于构建一个游戏引擎,但其作用不仅于此,我们可以利用它进行各种C++软件的开发。



Tips

  • 标题:QString 字符串操作:连接、组合、替换、去掉空白字符

  • 内容:

  • “+” 用于组合两个字符串,“+=” 用于将一个字符串追加到另一个字符串的末尾

QString str1 = "Welcome";
str1 = str1 + "to you !"; //str1 = "Welcome to you!"
QString str2 = "Hello,";
str2 += "World!"; //str2 = "Hello,World!"



  • QString::append()函数,具有与“+=”操作符同样的功能,实现字符串末尾追加另一个字符串

QString str1 = "Welcome ";
QString str2 = "to ";
str1.append(str2); //str1 = "Welcome to "
str1.append("you !"); //str1 = "Welcome to you !"



  • QString::sprintf()函数,支持的格式定义和C++库中的函数sprintf()定义一样

QString str;
str.sprintf("%s","Welcome "); //str = "Welcome "
str.sprintf("%s"," to you! "); //str = " to you! "
str.sprintf("%s %s","Welcome "," to you! "); //str = "Welcome to you! ";



  • QString::arg()函数,相对Qtring::sprintf(),QString::arg()是一个比较好的解决方案,因为它类型安全,完全支持Unicode。

QString str;
//str = "Joy was born in 1993.";
str = QString("%1 was born in %2.").arg("Joy").arg(1993);



  • insert()函数:在原字符串特定位置插入另一个字符。

QString str = "Meal";
str.insert(1, QString("ontr"));
// str == "Montreal"



  • prepend()函数:在原字符串开头插入另一个字符串。

QString x = "ship";
QString y = "air";
x.prepend(y);
// x == "airship"



  • replace()函数:用指定的字符串去代替原字符串中的某些字符。

QString x = "Say yes!";
QString y = "no";
x.replace(4, 3, y);
// x == "Say no!"
QString str = "colour behaviour flavour neighbour";
str.replace(QString("ou"), QString("o"));
// str == "color behavior flavor neighbor"



  • QString::trimmed()函数:移除字符串两端的空白符。

QString str1 = " Welcome \t to \n you! ";
str1 = str1.trimmed(); // str1 = " Welcome \t to \n you! "



  • QString::simplified()函数:移除字符串两端的空白字符,使用单个空格字符“ ”代替字符串中出现的空白字符。

QString str2 = " Welcome \t to \n you! ";
str2 = str2.simplified(); // str2 = " Welcome to you ! "



Share

  • 文章:白话中台战略:中台是个什么鬼?

  • 感受:作者通过一步步的分析,最终给出“中台”的定义,相对来说,我对这篇文章中给出的“中台”概念和作用是比较认可的。精彩内容有:

  • 企业为什么要平台化?--因为在当今互联网时代,用户户才是商业战场的中心,为了快速响应用户的需求,借助平台化的力量可以事半功倍。可以说,在互联网时代,商业的斗争就是对于用户响应力的比拼。

  • 企业为什么要建中台?--因为企业后台往往并不能很好的支撑前台快速创新响应用户的需求,后台更多解决的是企业管理效率问题,而中台要解决的才是前台的创新问题。软件开发中遇到的所有问题,都可以通过增加一层抽象层得以解决!中台是真正为前台而生的平台(可以是技术平台,业务能力甚至是组织机构),它存在的唯一目的就是更好的服务前台规模化创新,进而更好的响应服务引领用户,使企业真正做到自身能力与用户需求的持续对接。

  • 评判一个平台是否称得上中台,最终评判标准不是技术也不是长什么模样,最终还是得前台说了算,毕竟前台才是战争的关键,才是感受得到战场的残酷,看得见用户的那部分人。前台想不想用,爱不爱用,好不好用,帮了前台多大的忙,从中台获得了多大的好处,愿意掏出多少利润来帮助建设中台,这才是甄别中台建设对错好坏的唯一标准。对于中台来讲,前台就是用户,以用户为中心,在中台同样适用。

  • 中台就是“企业级能力复用平台”。--“企业级能力复用平台”这个定义虽然看起来简单,但经过这么长时间对于中台的实践与思考,我觉得如上文所述的这个定义背后所代表的意义是目前对中台价值的最贴切的阐释:企业级定义了中台的范围,区分开了单系统的服务化与微服务;能力定义了中台的主要承载对象,能力的抽象解释了各种各样中台的存在;复用定义了中台的核心价值,传统的平台化对于易复用性并没有给予足够的关注,中台的提出和兴起,让人们通过可复用性将目光更多的从平台内部转换到平台对于前台业务的支撑上;平台定义了中台的主要形式,区别于传统的应用系统拼凑的方式,通过对于更细力度能力的识别与平台化沉淀,实现企业能力的柔性复用,对于前台业务更好的支撑。



发布于: 2020 年 06 月 02 日阅读数: 50
用户头像

王钰淇

关注

少花时间在说服别人的事上 2018.03.04 加入

跋涉中的C++程序员

评论

发布
暂无评论
坚持ARTS-week2