go語言快速刷《程式設計師面試金典》(2)

2021-10-06 06:50:09 字數 1254 閱讀 5078

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

示例1輸入:s1 = "waterbottle", s2 = "erbottlewat"

輸出:true

示例2輸入:s1 = "aa", "aba"

輸出:false

func isflipedstring(s1 string, s2 string) bool
編寫**,移除未排序鍊錶中的重複節點。保留最開始出現的節點。

示例1:

輸入:[1, 2, 3, 3, 2, 1]輸出:[1, 2, 3]
把每乙個節點後的相同節點全刪掉即可。

/**

* definition for singly-linked list.

* type listnode struct

*/func removeduplicatenodes(head *listnode) *listnode else

} }

return head;

}

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

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

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

輸出: 4

/**

* definition for singly-linked list.

* type listnode struct

*/func kthtolast(head *listnode, k int) int

for i:=length-k;i>0;i--

return head.val;

}

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

示例:輸入:單向鍊錶a->b->c->d->e->f中的節點c

結果:不返回任何資料,但該鍊錶變為a->b->d->e->f

/**

* definition for singly-linked list.

* type listnode struct

*/func deletenode(node *listnode)

程式設計師面試金典2

1.魔術索引 1 class magicindex return false 切記二分查詢是left right.2.魔術索引2 切記抓住資料規律 class magicindex private bool find vector data,const int len,int left,int ri...

程式設計師面試金典

1.有個小孩正在上樓梯,樓梯有n階台階,小孩一次可以上1階 2階 3階。請實現乙個方法,計算小孩有多少種上樓的方式。為了防止溢位,請將結果mod 1000000007 給定乙個正整數intn,請返回乙個數,代表上樓的方式數。保證n小於等於100000。int countways int n retu...

程式設計師面試金典 2 2

return kth to last 返回單鏈表中倒數第k個元素。下面會分別使用遞迴和非遞迴的方法來解決這道題,一般來說遞迴的方法寫起來更容易,但是效率一般不是最好的,比如這道題遞迴解法的 量大約是非遞迴解法的一半,但是時間複雜度依然是o n 遞迴解法。這種方法的本質是先遍歷到鍊錶尾部,最後再返回的...