1.StringBuilder
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/1d4c78ce922501e6fcefe8cd870818b5.png)
解题代码:
public static void main(String[] args) {
String interpret = interpret("G()()()()(al)");
System.out.println(interpret);
}
public static String interpret(String command) {
StringBuilder sb=new StringBuilder() ;
for (int i = 0; i < command.length(); i++) {
if(command.charAt(i)=='G')
sb.append('G');
if(command.charAt(i)==')'&&command.charAt(i-1)=='(')
sb.append('o');
if(command.charAt(i)==')'&&command.charAt(i-1)=='l')
sb.append("al");
}
return sb.toString();
}
2.双指针
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/702308cacfe61bc6798870ebc1caa0f7.png)
代码:
public static void main(String[] args) {
int interpret = maxOperations(new int[] {3,1,3,4,3},6);
System.out.println(interpret);
}
public static int maxOperations(int[] nums, int k) {
int len=nums.length;
Arrays.sort(nums);
int left=0,right=len-1;
int res=0;
while (left<right)
{
if(nums[left]+nums[right]>k)
right--;
else if(nums[left]+nums[right]<k)
left++;
else {
right--;
left++;
res++;
}
}
if(res==0)
return -1;
return res;
}
3.移位,减法取模
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e750944081397fb9dfca5fc85e971c0b.png)
代码:
二进制模拟拼接的过程
4.状态压缩DP
代码:
最小不兼容性