您好,欢迎访问一九零五行业门户网

Java字符串、数组和二叉搜索树实例的分析

题目一
 解法
class solution { public string reverseonlyletters(string s) { char[] chars = s.tochararray(); int left = 0; int right = chars.length-1; while(left<=right){ char tmp = 0; if(chars[left]>='a'&&chars[left]<='z'||(chars[left]>='a'&&chars[left]<='z')){ tmp = chars[left]; }else { left++; continue; } if(chars[right]>='a'&&chars[right]<='z'||(chars[right]>='a'&&chars[right]<='z')){ chars[left] = chars[right]; chars[right] = tmp; }else { right--; continue; } left++; right--; } return new string(chars); }}
题目二
解法
/** * definition for a binary tree node. * public class treenode { * int val; * treenode left; * treenode right; * treenode() {} * treenode(int val) { this.val = val; } * treenode(int val, treenode left, treenode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */class solution { public treenode increasingbst(treenode root) { arraylist<integer> list = new arraylist<integer>(); method(root,list); treenode ans = new treenode(-1); treenode cur = ans; for(int i:list){ treenode node = new treenode(i); cur.right = node; cur = cur.right; } return ans.right; } public void method(treenode root,list<integer> list){ if(root==null) return; method(root.left,list); list.add(root.val); method(root.right,list); }}
题目三
解法
class solution { public int[] sortarraybyparity(int[] nums) { int[] ans = new int[nums.length]; int left = 0; int right = nums.length-1; for(int i : nums){ if(i%2==0){ ans[left] = i; left++; }else{ ans[right] = i; right--; } } return ans; }} class solution { public int[] sortarraybyparity(int[] nums) { int left = 0; int right = nums.length-1; while(left<=right){ if(nums[left]%2==0){ left++; continue; } if(nums[right]%2!=0){ right--; continue; } if(nums[left]%2!=0&&nums[right]%2==0){ int tmp = nums[left]; nums[left] = nums[right]; nums[right] = tmp; } } return nums; }}
题目四
解法
class solution { public boolean backspacecompare(string s, string t) { if(method(s).equals(method(t))) return true; return false; } public static string method(string s){ int slow = 0; char[] chars = s.tochararray(); for (int i = 0; i < chars.length; i++) { if(chars[i]=='#'){ chars[i] = 0; slow = i; while (true){ if(slow-1<0) break; if (chars[slow-1]!=0){ chars[slow-1] = 0; break; } slow--; } } } stringbuilder sb = new stringbuilder(); for(char i : chars){ if(i!=0) sb.append(i); } return sb.tostring(); }}
以上就是java字符串、数组和二叉搜索树实例的分析的详细内容。
其它类似信息

推荐信息