深圳将进一步优化防控措施,seo sem是啥,wordpress+主题+恢复,wordpress主题nana题目#xff1a;
HJ92 在字符串中找出连续最长的数字串
题解#xff1a;
找到第一个数字从第一个数字开始往后遍历#xff0c;每走一步判断当前是否为数字#xff0c;是数字就累加cnt如果当前位置不是数字#xff0c;证明连续数字串已经断开#xff0c;此时需要记录最…题目
HJ92 在字符串中找出连续最长的数字串
题解
找到第一个数字从第一个数字开始往后遍历每走一步判断当前是否为数字是数字就累加cnt如果当前位置不是数字证明连续数字串已经断开此时需要记录最长数字串并清空cnt结束后如果cnt不等于0需要再次记录最长数字串因为只有在出现非数字才会更新cnt如果以数字结尾就会导致最后一段没记录上所以结束之后需要进行一次补偿
public void getMaxNumberSubString(String string) {StringBuilder sb new StringBuilder();int max 0;int cnt 0;int start 0;for (int i 0; i string.toCharArray().length; i) {if (Character.isDigit(string.toCharArray()[i])) {start i;break;}}for (int i start 1; i string.toCharArray().length; i) {if (Character.isDigit(string.toCharArray()[i])) {cnt;} else {String subString string.substring(start, i);if (subString.length() max) {max subString.length();sb.setLength(0);sb.append(subString);} else if (subString.length() max) {sb.append(subString);}start i 1;cnt 0;}}if (cnt ! 0) {String subString string.substring(start);if (subString.length() max) {max subString.length();sb.setLength(0);sb.append(subString);} else if (subString.length() max) {sb.append(subString);}}System.out.printf(%s,%s\n, sb, max);}
时间复杂度O(n)