千家信息网

Java字符串,数组及二叉搜索树实例分析

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,本文小编为大家详细介绍"Java字符串,数组及二叉搜索树实例分析",内容详细,步骤清晰,细节处理妥当,希望这篇"Java字符串,数组及二叉搜索树实例分析"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢
千家信息网最后更新 2025年01月19日Java字符串,数组及二叉搜索树实例分析

本文小编为大家详细介绍"Java字符串,数组及二叉搜索树实例分析",内容详细,步骤清晰,细节处理妥当,希望这篇"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 list = new ArrayList();        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 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字符串,数组及二叉搜索树实例分析"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

0