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

解法
/**
* 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ù)來刪除某個單鏈表中指定的節(jié)點
具體題目如下

解法
/**
* 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ù)來判斷給定的兩個字符串是否為字母異位詞
具體題目如下

解法
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;
}
}題目六
字符串題——驗證字符串
驗證給定的字符串是否遵循相同的規(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;
}
}到此這篇關于劍指Offer之Java算法習題精講鏈表與字符串及數(shù)組的文章就介紹到這了,更多相關Java 鏈表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- 劍指Offer之Java算法習題精講數(shù)組查找與字符串交集
- 劍指Offer之Java算法習題精講數(shù)組與字符串題
- 劍指Offer之Java算法習題精講N叉樹的遍歷及數(shù)組與字符串
- 劍指Offer之Java算法習題精講數(shù)組與字符串
- 劍指Offer之Java算法習題精講數(shù)組與列表的查找及字符串轉(zhuǎn)換
- 劍指Offer之Java算法習題精講字符串操作與數(shù)組及二叉搜索樹
- 關于java數(shù)組與字符串相互轉(zhuǎn)換的問題
- java 字符串轉(zhuǎn)化為字符數(shù)組的3種實現(xiàn)案例
- Java數(shù)組與字符串深入探索使用方法
相關文章
SpringMVC Json自定義序列化和反序列化的操作方法
這篇文章主要介紹了SpringMVC Json自定義序列化和反序列化的操作方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01
Java數(shù)據(jù)結(jié)構(gòu)最清晰圖解二叉樹前 中 后序遍歷
Java使用wait() notify()方法操作共享資源詳解
springboot-jta-atomikos多數(shù)據(jù)源事務管理實現(xiàn)
feign客戶端HTTP狀態(tài)碼為204時?響應體被忽略的問題
Elasticsearch查詢及聚合類DSL語句寶典示例詳解

