Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions src/main/java/MoveZeroes/zhanweta/MoveZeros.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package MoveZeroes.zhanweta;
/*
Runtime: 0 ms, faster than 100.00% of Java online submissions for Move Zeroes.
Memory Usage: 37.7 MB, less than 99.61% of Java online submissions for Move Zeroes.
*/
public class MoveZeros {
public static void main(String [] args){
//测试用
int [] nums = {2,1};
moveZeros(nums);
}
public static void moveZeros(int [] nums){
int posOfNoZero = 0;
int len = nums.length;
for(int i = 0 ; i < len ; i++){
if(nums[i] != 0){
if(i > posOfNoZero) {
nums[posOfNoZero++] = nums[i];
nums[i] = 0;
}else
posOfNoZero++;
}
}
for(int num : nums)
System.out.print(num);
}
}
18 changes: 18 additions & 0 deletions src/main/java/RemoveElement/zhanweta/RemoveElement.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package RemoveElement.zhanweta;

public class RemoveElement {
public static void main(String [] args){
int [] nums = {3,2,2,3};
System.out.print(removeElement(nums,3));
}
public static int removeElement(int[] nums,int val){
int pos = -1;
for(int i = 0, len = nums.length ; i<len; i++){
if(nums[i] != val) {
pos++;
nums[pos] = nums[i];
}
}
return pos+1;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package ValidParentheses.AzusaMutan.zhanweta;

// '(', ')', '{', '}', '[' and ']'

import java.util.ArrayList;
import java.util.List;

public class ValidParentheses {
public static void main(String [] args){
String s =
"{[]}";
System.out.println(isValid(s));
}
public static boolean isValid(String s){

List<Character> chars = new ArrayList<Character>(); //栈
int len = s.length(); //s长度
// chars.add(s.charAt(0));

//将s的前半部分去重部分放入一个栈中
for(int i = 0 ; i < len ; i ++ ){
//chars长度为0,则直接添加
if(chars.size() == 0)
chars.add(s.charAt(i));

//chars长度不为0且与栈顶数据不等,入栈
else {
switch (s.charAt(i)){
case ')':{
if(chars.get(chars.size()-1) == '(')
chars.remove(chars.size() - 1);
else
chars.add(s.charAt(i));
break;
}
case '}':{
if(chars.get(chars.size()-1) == '{')
chars.remove(chars.size() - 1);
else
chars.add(s.charAt(i));
break;

}
case ']':{
if(chars.get(chars.size()-1) == '[')
chars.remove(chars.size() - 1);
else
chars.add(s.charAt(i));
break;
}
default:
chars.add(s.charAt(i));
break;
}
}

}

return chars.size() == 0;

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
package ValidParenthesisString.AzusaMutan.zhanweta;

import java.util.ArrayList;
import java.util.List;

public class ValidParenthesisString {
public static void main(String [] args){
String s =
"((*)))"; // ((*))*)
System.out.println(checkValidString(s));
}
public static boolean checkValidString(String s) {
List<Character> chars = new ArrayList<Character>(); //栈_(
int len = s.length(); //s长度
//""->true
if(s.equals(""))
return true;
else{
//将s的前半部分去重部分放入一个栈中
for(int i = 0 ; i < len ; i ++ ){
//chars长度不为0且与栈顶数据不等,入栈
switch (s.charAt(i)){
case ')':{
if(chars.size() == 0 )
return false;
else if(chars.get(chars.size() - 1) == '*'){
int lenC = chars.size();
for(int j = lenC-2 ; j >= 0; j--){
if(chars.get(j) == '(' ){
chars.remove(j);
break;
}
}
if(lenC == chars.size()) {
chars.remove(chars.size() - 1);
}
}else {
chars.remove(chars.size() - 1);

}
break;
}
case '*':{
chars.add('*');

break;
}
default:
chars.add('(');

break;
}
}

}

//二次处理
int lenS = chars.size();
int pos = 0;
for(int j = 0 ; j < lenS ; j ++){
if(chars.get(j) == '(')
pos++;
else if(pos > 0 && chars.get(j) == '*'){
pos --;
}
}

return pos == 0;
}

}