https://leetcode-cn.com/problems/reverse-string-ii/
该题分为两步:
将字符串按照2k的长度分割成一个数组
遍历该数组元素进行反转匹配即可
注意处理下边界值
下面是按照规定长度拆分字符串的代码,可以封装成一个工具类
/** * 把原始字符串分割成指定长度的字符串列表 * * @param inputString 原始字符串 * @param length 指定长度 * @return */public List<String> getStrList(String inputString, int length) { int size = inputString.length() / length; if (inputString.length() % length != 0) { size += 1; } return getStrList(inputString, length, size);}
/** * 把原始字符串分割成指定长度的字符串列表 * * @param inputString 原始字符串 * @param length 指定长度 * @param size 指定列表大小 * @return */public List<String> getStrList(String inputString, int length, int size) { List<String> list = new ArrayList<String>(); for (int index = 0; index < size; index++) { String childStr = substring(inputString, index * length, (index + 1) * length); list.add(childStr); } return list;}
/** * 分割字符串,如果开始位置大于字符串长度,返回空 * * @param str 原始字符串 * @param f 开始位置 * @param t 结束位置 * @return */public String substring(String str, int f, int t) { if (f > str.length()) return null; if (t > str.length()) { return str.substring(f, str.length()); } else { return str.substring(f, t); }xw}
https://leetcode-cn.com/problems/binary-prefix-divisible-by-5/
//思路://[1,1,1,0,1]//第一步:[1] = 0*2+1 = 1; //被5取模=1//第二步:[1,1] = 1*2+1 = 3; //被5取模=3//第三步:[1,1,1] = 3*2+1 = 7; //被5取模=2//第四步:[1,1,1,0] = 7*2+0 = 14; //被5取模=4//第五步:[1,1,1,0,1] = 14*2+1 = 29; //被5取模=4//如果每步计算2的幂,结果会越来越大,java没有基本类型可以承受如此大的结果//考虑采用每次结果的模进行计算//第一步:[1] = (0*2+1)%5 = 1; //被5取模=1//第二步:[1,1] = (1*2+1)%5 = 3; //被5取模=3//第三步:[1,1,1] = (3*2+1)%5 = 2; //被5取模=2//第四步:[1,1,1,0] = (2*2+0)%5 = 4; //被5取模=4//第五步:[1,1,1,0,1] = (4*2+1)%5 = 4; //被5取模=4
import java.util.ArrayList;import java.util.List;
public class Main {
public static void main(String[] args) { Main main = new Main(); int[] a = {0, 1, 1, 1, 1, 1}; List<Boolean> list = main.prefixesDivBy5(a); for (Boolean b : list) { System.out.println(b); } }
public List<Boolean> prefixesDivBy5(int[] A) { List<Boolean> list = new ArrayList<>(); int mod = 0; for (int i : A) { mod = (mod * 2 + i) % 5; if (mod == 0) list.add(true); else list.add(false); } return list; }}