劍指Offer之Java算法習(xí)題精講鏈表與字符串及數(shù)組
題目一
鏈表題——操作鏈表
根據(jù)給定的鏈表按照指定條件刪除其中節(jié)點(diǎn)并返回新的頭節(jié)點(diǎn)
具體題目如下

解法
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode removeElements(ListNode head, int val) {
ListNode q = new ListNode(-1);
ListNode a = q;
q.next = head;
while(q.next!=null){
if(q.next.val==val){
q.next = q.next.next;
}else{
q = q.next;
}
}
return a.next;
}
}題目二
字符串題——判斷同構(gòu)字符串
根據(jù)給定的字符串判斷他們是否為同構(gòu)字符串
具體題目如下

解法
class Solution {
public boolean isIsomorphic(String s, String t) {
if(s.length()!=t.length()){
return false;
}
for(int i =0;i<s.length();i++){
if(s.indexOf(s.charAt(i))!=t.indexOf(t.charAt(i))){
return false;
}
}
return true;
}
}題目三
鏈表題——操作鏈表
編寫函數(shù)來刪除某個(gè)單鏈表中指定的節(jié)點(diǎn)
具體題目如下

解法
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public void deleteNode(ListNode node) {
node.val = node.next.val;
node.next = node.next.next;
}
}題目四
字符串題——判斷異位詞
編寫函數(shù)來判斷給定的兩個(gè)字符串是否為字母異位詞
具體題目如下

解法
class Solution {
public boolean isAnagram(String s, String t) {
if(s.length()!=t.length()) return false;
ArrayList<Character> list1 = new ArrayList<>();
ArrayList<Character> list2 = new ArrayList<>();
for (int i = 0; i < s.length(); i++) {
list1.add(s.charAt(i));
}
for (int i = 0; i < t.length(); i++) {
list2.add(t.charAt(i));
}
Collections.sort(list1);
Collections.sort(list2);
for (int i = 0; i < list1.size(); i++) {
if (list1.get(i)!=list2.get(i)) return false;
}
return true;
}
}
//要熟悉API
class Solution {
public boolean isAnagram(String s, String t) {
if (s.length() != t.length()) {
return false;
}
char[] str1 = s.toCharArray();
char[] str2 = t.toCharArray();
Arrays.sort(str1);
Arrays.sort(str2);
return Arrays.equals(str1, str2);
}
}題目五
數(shù)組題——查找數(shù)組
根據(jù)給定的數(shù)組按照指定條件查找數(shù)組中是否包含指定值
具體題目如下

解法
class Solution {
public int missingNumber(int[] nums) {
Arrays.sort(nums);
for (int i = 0; i < nums.length; i++) {
if(i!=nums[i]){
return i;
}
}
return nums.length;
}
}題目六
字符串題——驗(yàn)證字符串
驗(yàn)證給定的字符串是否遵循相同的規(guī)律
具體題目如下

解法
class Solution {
public boolean wordPattern(String pattern, String s) {
String[] split = s.split(" ");
if(split.length!=pattern.length()) return false;
int q = 0;
for(int i =0;i<split.length;i++){
l: for(int w = 0;w<split.length;w++){
if(split[w].equals(split[i])){
q = w;
break l;
}
}
if(pattern.indexOf(pattern.charAt(i))!=q){
return false;
}
}
return true;
}
}到此這篇關(guān)于劍指Offer之Java算法習(xí)題精講鏈表與字符串及數(shù)組的文章就介紹到這了,更多相關(guān)Java 鏈表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 劍指Offer之Java算法習(xí)題精講數(shù)組查找與字符串交集
- 劍指Offer之Java算法習(xí)題精講數(shù)組與字符串題
- 劍指Offer之Java算法習(xí)題精講N叉樹的遍歷及數(shù)組與字符串
- 劍指Offer之Java算法習(xí)題精講數(shù)組與字符串
- 劍指Offer之Java算法習(xí)題精講數(shù)組與列表的查找及字符串轉(zhuǎn)換
- 劍指Offer之Java算法習(xí)題精講字符串操作與數(shù)組及二叉搜索樹
- 關(guān)于java數(shù)組與字符串相互轉(zhuǎn)換的問題
- java 字符串轉(zhuǎn)化為字符數(shù)組的3種實(shí)現(xiàn)案例
- Java數(shù)組與字符串深入探索使用方法
相關(guān)文章
SpringBoot自定義全局異常處理器的問題總結(jié)
Springboot框架提供兩個(gè)注解幫助我們十分方便實(shí)現(xiàn)全局異常處理器以及自定義異常,處理器會(huì)優(yōu)先處理更具體的異常類型,如果沒有找到匹配的處理器,那么它會(huì)尋找處理更一般異常類型的處理器,本文介紹SpringBoot自定義全局異常處理器的問題,一起看看吧2024-01-01
spring+srpingmvc+hibernate實(shí)現(xiàn)動(dòng)態(tài)ztree生成樹狀圖效果
這篇文章主要介紹了spring+srpingmvc+hibernate動(dòng)態(tài)ztree生成樹狀圖效果,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11
Java超詳細(xì)教你寫一個(gè)學(xué)籍管理系統(tǒng)案例
Java數(shù)據(jù)庫存儲(chǔ)數(shù)組的方法小結(jié)
Java tomcat中的類加載器和安全機(jī)制你了解嗎
java 非對(duì)稱加密算法RSA實(shí)現(xiàn)詳解
Mybatis一對(duì)多延遲加載實(shí)現(xiàn)代碼解析

