字符串轮转。给定两个字符串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; }
 

技术
©2019-2020 Toolsou All rights reserved,
常见的5种JAVA运行时异常airflow 定时任务+时间设定+cron表达式 Unity3D Input按键系统vs2017,创建C++Win32窗体应用程序明明是post请求为什么会在地址栏显示参数?[work] python读取txt文件最后一行el-ui:select获取值科幻成真!“三体”被发现了springboot多配置文件配置(精华)2020年6月26日 C#类库 读取json配置文件帮助类