日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

go语言快速刷《程序员面试金典》(2)

發布時間:2023/12/13 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 go语言快速刷《程序员面试金典》(2) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

字符串輪轉。給定兩個字符串s1和s2,請編寫代碼檢查s2是否為s1旋轉而成(比如,waterbottle是erbottlewat旋轉后的字符串)。

示例1

輸入:s1 = "waterbottle", s2 = "erbottlewat"
?輸出:True

示例2

輸入:s1 = "aa", "aba"
輸出:False

func isFlipedString(s1 string, s2 string) bool {return len(s1) == len(s2) && strings.Contains(s2 + s2, s1) }

編寫代碼,移除未排序鏈表中的重復節點。保留最開始出現的節點。

示例1:

輸入:[1, 2, 3, 3, 2, 1] 輸出:[1, 2, 3]

把每一個節點后的相同節點全刪掉即可。

/*** Definition for singly-linked list.* type ListNode struct {* Val int* Next *ListNode* }*/ func removeDuplicateNodes(head *ListNode) *ListNode {;for temp:=head;temp!=nil;temp=temp.Next{num:=temp.Val;for i:=temp;i!=nil && i.Next!=nil;{if(i.Next.Val==num){i.Next=i.Next.Next;}else{i=i.Next}} }return head; }

實現一種算法,找出單向鏈表中倒數第 k 個節點。返回該節點的值。

注意:本題相對原題稍作改動

示例:

輸入: 1->2->3->4->5 和 k = 2
輸出: 4

/*** Definition for singly-linked list.* type ListNode struct {* Val int* Next *ListNode* }*/ func kthToLast(head *ListNode, k int) int {length:=0;for temp:=head;temp!=nil;temp=temp.Next{length++;}for i:=length-k;i>0;i--{head=head.Next;}return head.Val; }

實現一種算法,刪除單向鏈表中間的某個節點(即不是第一個或最后一個節點),假定你只能訪問該節點。

?

示例:

輸入:單向鏈表a->b->c->d->e->f中的節點c
結果:不返回任何數據,但該鏈表變為a->b->d->e->f

思路:把值修改為下一個節點的值,并刪除下一個節點。

/*** Definition for singly-linked list.* type ListNode struct {* Val int* Next *ListNode* }*/ func deleteNode(node *ListNode) {node.Val=node.Next.Val;node.Next=node.Next.Next; }

?

總結

以上是生活随笔為你收集整理的go语言快速刷《程序员面试金典》(2)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。