016替换空格
题目描述

请实现一个函数,将一个字符串s中的每个空格替换成“%20”。
例如,当字符串为We Are Happy.则经过替换之后的字符串
为We%20Are%20Happy。

关键解题思路
【知识点巩固】
替换或者修改字符串中任意位置的内容
方法1:【只能将String中某个字符替换为另一个字符】
使用String类的replace方法:

String str = "hello world";
String newStr = str.replace('o', 'e');
System.out.println(newStr);

方法2:【可替换为字符串】
String转化为char,然后再将修改完的char转化为String

char[] chars = str.toCharArray(); // 将整个String字符串转化为char类型的数组
String s1 = String.valueOf(chars1);//将字符数组转化为String字符串

方法3:【可替换为字符串】
将String改为StringBuilder

StringBuilder sb = new StringBuilder(str);//String转为StringBuilder
//使用StringBuilder的append方法添加内容
sb.toString();//StringBuilder转换为字符串

总结:方法2和方法3可以分别扩充char数组或者StringBuilder容量来将String某个位置字符替换成字符串。
Solution

import java.util.*;
public class Solution {
   
    /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @return string字符串 */
    public String replaceSpace (String s) {
   
        // write code here
        StringBuilder sb = new StringBuilder();
        for(int i=0;i <s.length(); i++){
   
            if(s.charAt(i)== ' '){
   
                sb.append("%20");
            }
            else{
   
                sb.append(s.charAt(i));
            }
        }
        return sb.toString();
    }
}

017判断给定的链表中是否有环
题目描述

判断给定的链表中是否有环,如果有环则返回true,否则返回false

在这里插入图片描述

关键解题思路
HashSet:唯一但无序
使用HashSet的contains方法来判断节点是否已经存在,用add方法来添加结点。
Solution

import java.util.*;
/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */
public class Solution {
   
    public boolean hasCycle(ListNode head) {
   
        HashSet<ListNode> hset = new  HashSet<>();
        ListNode res = head;
        while(res!=null){
   
            // boolean ans = hset.add(res.val);
            // System.out.println(!hset.add(res.val));
            if(hset.contains(res)){
   
                // System.out.print(res);
                return true;
            }
            else{
   
                hset.add(res);
            }
            res = res.next;
        }
        return false;
    }
}

018链表中环的入口结点
题目描述

给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null

在这里插入图片描述

关键解题思路
HashSet:唯一但无序
使用HashSet的contains方法来判断节点是否已经存在,如果已存在,返回该节点。用add方法来添加结点。

Solution

import java.util.*;
/* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } */
public class Solution {
   

    public ListNode EntryNodeOfLoop(ListNode pHead) {
   
        HashSet<ListNode> hset = new HashSet<>();
        ListNode node = pHead;
        while(node!=null){
   
            if(hset.contains(node)){
   
                return node;
            }
            else{
   
                hset.add(node);
            }

            node = node.next;
        }
        
        return null;

    }
}