一、笔记部分
方法1:暴力一个一个找
1.首先要找到分割点,3个分割处搞成4段,对于给出不同的情况,可能选取的每一段的长度不一样,所以要通过最大可能的下标去循环,然后在循环里面进行if判断,将满足条件的提取出来;后面的getLen就是看除数,如果是非零第一个是0的话,08/10=0,然后加1发现和08的长度不相等,所以这一段只能是0,不能往下走去寻找后面一段的数字,所以这种可能就会在这个for循环直接走完,不会进行到最后的add环节了。
2.提取每段的条件是数字不能超过255(超过255的那段,那么循环直接在那一段就完结了,不会走到最后一段去),并且非0的数字不能以0开头。/10看除数,和字符数字的长度比较。 实际上是真的每一段都跑了一次,因为只要不符合条件的它直接在自己的循环跑完。就不会到达我们要求的那个add去。
方法二:回溯:将所有的方法遍历一遍,然后最后通过条件判断,筛选出有空的
太妙了,一增一进一减就将我们要的所有排列组合就搞定了,神奇的算法,神奇的计算机科学。
StringBuffer的delete方法与deleteCharAt方法的区别。
delete方法与deleteCharAt两个方法都是用来删除StringBuffer字符串指定索引字符的方法,
delete(int begin,int end)有两个参数,使用时删除索引从begin开始(包含begin)到end(不包含end)的所有字符;
deleteCharAt(int index)只有一个参数,使用时删除索引为index的字符;
public String substring(int beginIndex, int endIndex)
String 没有delete 因为String 跟其他两个不一样,他是定长,其他两个是变长。
二、搜索类型的高频面试题汇总:
https://blog.csdn.net/qq_40262372/article/details/112702136
三、各种类型的高频面试题汇总:
https://blog.csdn.net/qq_40262372/article/details/112556249