2021.11.01python实现三个数相加为0 + 单词顺序反转字符串

1.单词顺序反转字符串

按单词反转字符串:保持每个单词内的字母顺序不变,只是将单词的顺序反转。例如:原来的字符串:That is a boy 反转后变为: boy a is That

def reverse_word(s):
    s1 = s.split() // 按照空格分割为列表
    //print(s1)
    i, j = 0, len(s1)-1
    while i < j:
        s1[i], s1[j] = s1[j], s1[i]
        i += 1
        j -= 1
    print(' '.join(s1)) //字符串已空格拼接
reverse_word('That is a boy wh')

2021.11.01python实现三个数相加为0 + 单词顺序反转字符串

2.三个数相加为0

给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0
?请你找出所有和为 0 且不重复的三元组。


def three_list(arr):
    n = len(arr)
    res = []
    if n <3 :  //如果数没有三个数
        return None
    arr.sort() //从小到大排序
    if sum(arr[::3]) >0 or sum(arr[-3:])<0: 
    //判断数组最小三个数是否大于0和最大三个数是否小于0
        return None
    for i in range(n-2):
        if arr[i] >0:  // 判断数组第一个数是否大于0
            return None
        if arr[i]+sum(arr[-2:])<0 or sum(arr[i:i+3])>0:
            continue
        if i>0 and arr[i] ==arr[i-1]:
            continue
        low = i+1
        high = n-1
        while low <high:
            count = arr[i] +arr[low]+arr[high]
            if count <0:
                low +=1
            elif count >0:
                high -=1
            else:
                mid = [arr[i],arr[low],arr[high]]
                if mid not in res:
                    res.append(mid)
                low +=1
                high -=1
    print(res)

three_list([1,-2,-1,0,3])

3.python 数据结构

列表list、元组tuple、字典dict、集合set

4.TCP与UDP基本区别

  1.基于连接与无连接
  2.TCP要求系统资源较多,UDP较少; 
  3.UDP程序结构较简单 
  4.流模式(TCP)与数据报模式(UDP); 
  5.TCP保证数据正确性,UDP可能丢包 
  6.TCP保证数据顺序,UDP不保证 

5.TCP编程的服务器端一般步骤是:

1、创建一个socket,用函数socket(); 
2、设置socket属性,用函数setsockopt(); * 可选 
3、绑定IP地址、端口等信息到socket上,用函数bind(); 
4、开启监听,用函数listen(); 
5、接收客户端上来的连接,用函数accept(); 
6、收发数据,用函数send()和recv(),或者read()和write(); 
7、关闭网络连接; 
8、关闭监听; 

本地代码实现

// 将web框架理解为服务端
import socket
server = socket.socket()  // TCP
server.bind(('127.0.0.1',8082))// ip协议 以太网协议
server.listen(5)  //池子 线程池

while True:
    conn,addr = server.accept()  //建立客户端连接
    data = conn.recv(1024)
    data = data.decode('utf-8')
    conn.send(b'HTTP/1.1 200 OK\r\n\r\n')
    
    current_path  = data.split(' ')[1]
    if current_path == '/index':
        with open(r'01.html','rb') as f :  //返回HTML 文件页面
            conn.send((f.read()))
    elif current_path == '/login':
        conn.send(b'login heheh ')
    //获取字符串中特点的内容
    else:
        conn.send(b'hellow wen')
    conn.close() //关闭监听

6.进程通信方式

主机进程间通信:
管道
命名管道
消息队列
信号量
共享内存
不同主机间通信: 套接字

上一篇:10.25JDBC之Apache-DBUtils实现CRUD操作


下一篇:【1030练习】(使用JDBC工具类)查询表格并展示