[学习报告]《LeetCode零基础指南》(第五讲) 指针(下)

 第六题:1108. IP 地址无效化


class Solution {
    public String defangIPaddr(String address) {
        StringBuilder sb=new StringBuilder();
        for(int i=0;i<address.length();i++){
            if(address.charAt(i) == '.'){//当等于'.'时不加进去,而加"[.]"这样就完成了替换
                sb.append("[.]");
                continue;
            }
            sb.append(address.charAt(i));
        }
        return sb.toString();
    }
}


[学习报告]《LeetCode零基础指南》(第五讲) 指针(下)


 第七题:剑指 Offer 05. 替换空格


class Solution {
    public String replaceSpace(String s) {
         StringBuilder sb=new StringBuilder();
         for(int i=0;i<s.length();i++){
             if(s.charAt(i)==' '){
                 sb.append("%20");
                 continue;
             }
             sb.append(s.charAt(i));
         }
         return sb.toString();
    }
}


[学习报告]《LeetCode零基础指南》(第五讲) 指针(下)


 字符串替换总结:


 这种字符串替换的问题,其实一个思路,先创建StringBuilder类,在一个for循环中通过


s.charAt(i)得到s字符串中的每个字符,在通过比对要换的字符,比对成就加入替换的字符


在通过此次字符暂停(continue)StingBuilder对象.append(s.charAt(i))即可.最后通过


toSting()返回即可.


第八题:1365. 有多少小于当前数字的数字


第一想法的老方法


class Solution {
    public int[] smallerNumbersThanCurrent(int[] nums) {
             int count=0;
             int n=nums.length;
                int arr[]=new int[n];
             for(int i=0;i<n;i++){
                  count=soul(nums,i);
                  arr[i]=count;
             }   
             return arr; 
    }
  public static int soul(int nums[],int n){
      int sum=0;
        for(int i=0;i<nums.length;i++){
            if(n!=i){
                if(nums[n]>nums[i]){
                    sum++;
                }
            }
        }
         return sum;
  }
}

[学习报告]《LeetCode零基础指南》(第五讲) 指针(下)


 第九题:剑指 Offer 17. 打印从1到最大的n位数


class Solution {
    public int[] printNumbers(int n) {
        int number=1;
        //几个n就弄到几位数
        for(int i=0;i<n;i++){
            number*=10;
        } 
        //由题可知申请number-1即可
         int []arr=new  int[number-1];
       for(int i=0,j=1;i<number-1;i++,j++){
           arr[i]=j;
       }
       return arr;
    }
}


[学习报告]《LeetCode零基础指南》(第五讲) 指针(下)


 第十题:1389. 按既定顺序创建目标数组


class Solution {
    public int[] createTargetArray(int[] nums, int[] index) {
        //创建一个集合
        ArrayList<Integer> array = new ArrayList();
        for(int i=0; i<nums.length; i++) {
            //通过集合的add方法对指定索引进行插入
            array.add(index[i],nums[i]);
        }
        int[] target = new int[array.size()];
        //遍历集合将集合中的元素插入
        for(int i=0; i<target.length; i++) {
            target[i] = array.get(i);
        }
        return target;
    }
}


这个参考了评论区的想法,非常的巧妙,利用add带索引的插入方法,在通过遍历加入所有


元素,确实挺好的。 


[学习报告]《LeetCode零基础指南》(第五讲) 指针(下)



上一篇:2016 Excel 展示 Sqlserver数据并制作图表


下一篇:【Java】集合之Collection概述