NLP实践TensorFlow打造聊天机器人

释放双眼,带上耳机,听听看~!

<p>想要课程的请访问 icourse8.com/nlp_tensorflow.html</p> <p>想要课程的请访问 icourse8.com/nlp_tensorflow.html</p> <h5>更多课程请访问icourse8.com,慕课网全集都有,还有跟多机构课程</h5> <h5>无论是入门,还是提高,总有一门课程适合你</h5> <div>icourse8.com/nlp_tensorflow.html</div>

第1章 课程导学
第2章 基础知识
第3章 循环神经网络(RNN与LSTM)
第4章 NLP基础
第5章 文本处理方法
第6章 实战之聊天语料处理
第7章 聊天机器人原理
第9章 聊天机器人训练-seq2seq的模型编写
第10章 聊天机器人模型的训练和验证
第11章 Android的打包与发布
给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表。

k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序。

示例 :


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1//用尾插法实现
2class Solution {
3    public ListNode reverseKGroup(ListNode head, int k) {
4        if (head == null) return null;
5        ListNode tmp=head,tail=head;
6        int count=1;
7
8        //检查是否够长
9        while (tail.next!=null &amp;&amp; count&lt;k){
10            tail = tail.next;
11            count++;
12        }
13        //System.out.println(&quot;tail.value&quot;+tail.val);
14        if (count == k){
15            //用递归,head变一变
16            //tail后面都排好了
17            tail.next = reverseKGroup(tail.next,k);
18            ListNode p;
19            //尾插,tmp指向第一个,tail指向最后一个
20            while (tmp != tail){
21                p=tail.next;
22                tail.next = tmp;
23                tmp = tmp.next;
24                tail.next.next = p;
25            }  
26            return tail;  
27        }
28        else return head;
29    }
30}
31

给定这个链表:1->2->3->4->5

当 k = 2 时,应当返回: 2->1->4->3->5

当 k = 3 时,应当返回: 3->2->1->4->5

说明 :

你的算法只能使用常数的额外空间。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
1class Solution {
2    public ListNode reverseKGroup(ListNode head, int k) {
3        ListNode prev = null;
4        ListNode cur = head;
5        ListNode next = null;
6        ListNode check = head;
7        int canProceed = 0;
8        int count = 0;
9        // 检查链表长度是否满足翻转
10        while (canProceed &lt; k &amp;&amp; check != null) {
11            check = check.next;
12            canProceed++;
13        }
14        // 满足条件,进行翻转
15        if (canProceed == k) {
16            while (count &lt; k &amp;&amp; cur != null) {
17                next = cur.next;
18                cur.next = prev;
19                prev = cur;
20                cur = next;
21                count++;
22            }
23            if (next != null) {
24                // head 为链表翻转后的尾节点
25                head.next = reverseKGroup(next, k);
26            }
27            // prev 为链表翻转后的头结点
28            return prev;
29        } else {
30            // 不满住翻转条件,直接返回 head 即可
31            return head;
32        }
33    }
34}
35

给TA打赏
共{{data.count}}人
人已打赏
安全运维

基于spring boot和mongodb打造一套完整的权限架构(一)

2021-12-11 11:36:11

安全运维

Ubuntu上NFS的安装配置

2021-12-19 17:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索