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

举报
兔老大 发表于 2021/04/27 23:18:48 2021/04/27
【摘要】 字符串轮转。给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串)。 示例1 输入:s1 = "waterbottle", s2 = "erbottlewat"  输出:True 示例2 输入:s1 = "aa", "aba" 输出:False func isFlipedStri...

字符串轮转。给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串)。

示例1

输入:s1 = "waterbottle", s2 = "erbottlewat"
 输出:True

示例2

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


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

编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。

示例1:

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

把每一个节点后的相同节点全删掉即可。


  
  1. /**
  2. * Definition for singly-linked list.
  3. * type ListNode struct {
  4. * Val int
  5. * Next *ListNode
  6. * }
  7. */
  8. func removeDuplicateNodes(head *ListNode) *ListNode {
  9. ;
  10. for temp:=head;temp!=nil;temp=temp.Next{
  11. num:=temp.Val;
  12. for i:=temp;i!=nil && i.Next!=nil;{
  13. if(i.Next.Val==num){
  14. i.Next=i.Next.Next;
  15. }else{
  16. i=i.Next
  17. }
  18. }
  19. }
  20. return head;
  21. }

实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。

注意:本题相对原题稍作改动

示例:

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


  
  1. /**
  2. * Definition for singly-linked list.
  3. * type ListNode struct {
  4. * Val int
  5. * Next *ListNode
  6. * }
  7. */
  8. func kthToLast(head *ListNode, k int) int {
  9. length:=0;
  10. for temp:=head;temp!=nil;temp=temp.Next{
  11. length++;
  12. }
  13. for i:=length-k;i>0;i--{
  14. head=head.Next;
  15. }
  16. return head.Val;
  17. }

实现一种算法,删除单向链表中间的某个节点(即不是第一个或最后一个节点),假定你只能访问该节点。

 

示例:

输入:单向链表a->b->c->d->e->f中的节点c
结果:不返回任何数据,但该链表变为a->b->d->e->f

思路:把值修改为下一个节点的值,并删除下一个节点。


  
  1. /**
  2. * Definition for singly-linked list.
  3. * type ListNode struct {
  4. * Val int
  5. * Next *ListNode
  6. * }
  7. */
  8. func deleteNode(node *ListNode) {
  9. node.Val=node.Next.Val;
  10. node.Next=node.Next.Next;
  11. }

 

文章来源: fantianzuo.blog.csdn.net,作者:兔老大RabbitMQ,版权归原作者所有,如需转载,请联系作者。

原文链接:fantianzuo.blog.csdn.net/article/details/106200195

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。