劍指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;
}
}題目三
鏈表題——操作鏈表
編寫(xiě)函數(shù)來(lái)刪除某個(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;
}
}題目四
字符串題——判斷異位詞
編寫(xiě)函數(shù)來(lái)判斷給定的兩個(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ù)的遍歷及數(shù)組與字符串
- 劍指Offer之Java算法習(xí)題精講數(shù)組與字符串
- 劍指Offer之Java算法習(xí)題精講數(shù)組與列表的查找及字符串轉(zhuǎn)換
- 劍指Offer之Java算法習(xí)題精講字符串操作與數(shù)組及二叉搜索樹(shù)
- 關(guān)于java數(shù)組與字符串相互轉(zhuǎn)換的問(wèn)題
- java 字符串轉(zhuǎn)化為字符數(shù)組的3種實(shí)現(xiàn)案例
- Java數(shù)組與字符串深入探索使用方法
相關(guān)文章
SpringMVC Json自定義序列化和反序列化的操作方法
這篇文章主要介紹了SpringMVC Json自定義序列化和反序列化的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
java 中模擬TCP傳輸?shù)目蛻舳撕头?wù)端實(shí)例詳解
這篇文章主要介紹了java 中模擬TCP傳輸?shù)目蛻舳撕头?wù)端實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-03-03
Java數(shù)據(jù)結(jié)構(gòu)最清晰圖解二叉樹(shù)前 中 后序遍歷
樹(shù)是一種重要的非線性數(shù)據(jù)結(jié)構(gòu),直觀地看,它是數(shù)據(jù)元素(在樹(shù)中稱(chēng)為結(jié)點(diǎn))按分支關(guān)系組織起來(lái)的結(jié)構(gòu),很象自然界中的樹(shù)那樣。樹(shù)結(jié)構(gòu)在客觀世界中廣泛存在,如人類(lèi)社會(huì)的族譜和各種社會(huì)組織機(jī)構(gòu)都可用樹(shù)形象表示2022-01-01
Java使用wait() notify()方法操作共享資源詳解
這篇文章主要為大家詳細(xì)介紹了Java使用wait() notify()方法操作共享資源,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
springboot-jta-atomikos多數(shù)據(jù)源事務(wù)管理實(shí)現(xiàn)
本文主要介紹了springboot-jta-atomikos多數(shù)據(jù)源事務(wù)管理實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
Java中的相除(/)和取余(%)的實(shí)現(xiàn)方法
這篇文章主要介紹了Java中的相除(/)和取余(%)的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
feign客戶端HTTP狀態(tài)碼為204時(shí)?響應(yīng)體被忽略的問(wèn)題
這篇文章主要介紹了feign客戶端HTTP狀態(tài)碼為204時(shí)?響應(yīng)體被忽略的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
Elasticsearch查詢(xún)及聚合類(lèi)DSL語(yǔ)句寶典示例詳解
這篇文章主要為大家介紹了Elasticsearch查詢(xún)及聚合類(lèi)DSL語(yǔ)句寶典示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01

