面试题
面试题
suyouli
只要努力,一切皆有可能
展开
-
什么是TCP粘包?怎么解决这个问题
在socket网络编程中,都是端到端通信,由客户端端口+服务端端口+客户端IP+服务端IP+传输协议组成的五元组可以明确的标识一条连接。在TCP的socket编程中,发送端和接收端都有成对的socket。发送端为了将多个发往接收端的包,更加高效的的发给接收端,于是采用了优化算法(Nagle算法),将多次间隔较小、数据量较小的数据,合并成一个数据量大的数据块,然后进行封包。那么这样一来,接收端就必须使用高效科学的拆包机制来分辨这些数据。 1.Q:什么是TCP粘包问题? TCP粘包就是指发送方发送的若干包数转载 2020-09-23 11:20:55 · 133 阅读 · 0 评论 -
C/C++库函数实现
1、strcpy 从strSrc地址开始且含有NULL结束符的字符串复制到以strDest开始的地址空间 char * strcpy(char *strDest, const char * strSrc) { assert((strDest != NULL) && (strSrc != NULL)); //if (strDest == NULL || strSrc == NULL) return NULL; //保存目标字符串的首地址 char *strD.原创 2020-08-08 11:23:59 · 510 阅读 · 0 评论 -
最长回文子串
解法 1:暴力法 菜鸡的我第一想法只能想到暴力法,遍历各种可能结果。 class Solution { public: string longestPalindrome(string s) { string res="";//存放结果 string temp="";//存放子串 for(int i=0;i<s.length();i++) { for(int j=i;j<s.length();j++...转载 2020-08-08 09:59:39 · 238 阅读 · 0 评论 -
合并链表
已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序(可以用递归的方式) #include <string.h> struct node { int data; node *next; }; node *MergeRecursive(node *head1, node *head2) { node *head = NULL; if (head1 == NULL) { return head2;原创 2020-08-04 21:33:50 · 170 阅读 · 0 评论 -
反转一个单链表
目录 例题描述 思路一 代码实现 思路二 代码实现 例题描述 反转一个链表 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 结构体定义 struct ListNode { int val; struct ListNode *next; }; 1 2 3 4 思路一 先对原链表做头删操作,再对新链表做头插 定义一个新head头指针,标记为.转载 2020-08-04 20:52:34 · 1062 阅读 · 0 评论 -
面试题:sizeof
一、 int main() { int **a[3][6]; printf("%d\n",sizeof(a)); printf("%d\n",sizeof(*a)); printf("%d\n",sizeof(**a)); printf("%d\n",sizeof(***a)); printf("%d\n",sizeof(****a)); return 0; } 输出结果:3...原创 2019-10-27 10:24:53 · 232 阅读 · 0 评论