题目:2264.找到一个数字的 K 美丽度
题目来源:
leetcode题目,网址:2269. 找到一个数字的 K 美丽值 - 力扣(LeetCode)
解题思路:
使用滑动窗口遍历判断,窗口中放置 k 个数字,每次后移一位。
解题代码:
class Solution {public int divisorSubstrings(int num, int k) {int res=0;String str=Integer.toString(num);int window=0; //滑动窗口int base=1; //每滑动一次,对base取余删去最前面数字for(int i=0;i<k;i++){window=window*10+str.charAt(i)-'0';base=base*10;}base=base/10;if(num%window==0){res++;}for(int i=k;i<str.length();i++){window=window%base;window=window*10+str.charAt(i)-'0';if(window!=0 && num%window==0){res++;}}return res; }
}
总结:
官方题解是暴力枚举。他使用的是数组而不是字符串。使用数组处理效率更高。