自从签了个国企,就失去了拼搏的动力。因为觉得国企也挺难进,进去的人学历都不比我差,在性价比高的城市855不好吗。还稳定。主要觉得自己大城市怎样都买不起房子,干几年回到小城市又没有什么工作机会。这个国企缺点是钱少,也就互联网的一半吧,而且国企弊病,谁知道多年后你能赚的是人家的几分之几呢。
不过每一种选择都有它的长处和短处,我既然做了选择就代表我愿意忍受它 的短处。希望选择过后是洒脱,因为后悔向来无意义。
但是下周还有华为面试,还是干一干吧,毕竟也学了一段时间,躺平总觉得好像白干了,希望是我能做选择,而不是我不得不这样选择。
最后,我希望研究所能给我一个好的结果。
缺乏动力的结果是效率很低,希望华为面试那天不要太丢人。。。
最长回文子串,我脑子里第一个蹦出来的是不重复的最长子串。然后想想好像又没什么关系。那道题是hashMap,加上不断通过选最大值更新左边界(原来左边界和重复字符+1之间比较)
这个题也是三月做的可以说脑子里毫无印象。
暴力法感觉有些智障,于是看了动态规划。
关系就是:这个子串是回文串的话那么=他的左右边界字符相等&去掉左右边界也是回文串。
维护一个回文串的左右边界。左边界要小于右,画个图很清晰。
动态规划这轮用的值得是上轮填上的,以j为外层循环,这样j-1那一列一定是之前填过的。
遍历字符串啦。
每一个j都是右边界,遍历每一个以j为右边界的字符串。
public String longestPalindrome(String s) {
if(s.length()==1)return s;
boolean[][] dp=new boolean[s.length()][s.length()];
for(int i=0;i<s.length();i++){
dp[i][i]=true;
}
int a=0,max=1;
char[] ch=s.toCharArray();
for(int j=1;j<s.length();j++){
for(int i=0;i<j;i++){
if(ch[i]==ch[j]){
if(j-i<3) {
dp[i][j]=true;
}
else{
dp[i][j]=dp[i+1][j-1];
}
} else dp[i][j]=false;
if(dp[i][j]==true){
if(j-i+1>max){
max=j-i+1;
a=i;
}
}
}
}
return s.substring(a,a+max);
}