LOADING

加载过慢请开启缓存 浏览器默认开启

天机工程

科技不是一题一解的死板学识,而是令我们超凡脱俗的产物。

2023/11/18

java(web编程、servlet与tomcat)

学完TCP编程后,web编程只是对其的一个扩展,servlet封装了一些web编程接口,使得处理web编程更简单

inputstream/outputstream本质是创建一个输入/输出流连接,连接是持续的,每次输入都会进入输入流中,不断read即可

inputstream每次读入8位的2进制数,也就是一个字节的数据,并将8位二进制数转为整数(0-255),inputstreamreader只不过多了一个编码方式,会把读入的二进制整数以固定编码方式解码

阅读全文

2023/11/17

离散数学实验:集合关系的二元性质判定

使用c++语言实现,用multimap来表示随机生成的集合关系(如<a,a>)

阅读全文

2023/11/16

java学习

终于学完java多线程了,大概了解了线程同步、死锁、线程池等概念还有一些常用对象,然后还搞了个java的爬虫(java的http编程)

阅读全文

2023/11/14

每日0题+Java学习:多线程

多线程的锁机制讲的很清楚很好。

阅读全文

2023/11/12

每日0题+java学习

鸽了几天blog,重振旗鼓

速通了下java集合,现在学到javaIO了,这周打算把IO和多线程学完,之后开始学后端相关了

阅读全文

2023/11/7

爬虫授课:web网络请求、抓包

计算机网络是指两台或更多的计算机组成的网络,在同一个网络中,任意两台计算机都可以直接通信,因为所有计算机都需要遵循同一种网络协议。

阅读全文

2023/11/6

每日一题(重复的字符串)+java学习

459.重复的子字符串

力扣题目链接(opens new window)

给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。

示例 1:

  • 输入: “abab”
  • 输出: True
  • 解释: 可由子字符串 “ab” 重复两次构成。

示例 2:

  • 输入: “aba”
  • 输出: False

示例 3:

  • 输入: “abcabcabcabc”
  • 输出: True)
  • 解释: 可由子字符串 “abc” 重复四次构成。 (或者子字符串 “abcabc” 重复两次构成。)
//重复的子字符串
// Created by 徐昊岩 on 2023/11/6.
//想到关键的一点:只会由子字符串构成2、3...有限次,因此一定是长度的1/2或1/3...,其实很简单
/*  判断质数、公约数.....都可以用到
 * 首先,约数是成对出现的。比如24,你找到个约数3,那么一定有个约数8,因为24/3=8
 * 然后,这对约数必须一个在根号n之前,一个在根号n之后。因为都在根号n之前的话,乘积一定小于n(根号nX根号n=n),
 * 同样,都在根号n之后的话,乘积一定大于n。所以,如果你在根号n之前都找不到约数的话,那么根号n之后就不会有了。
 */

#include "string"
#include "cmath"
#include "iostream"
using namespace std;

class Solution {
public:
    bool repeatedSubstringPattern(string s) {
        int size = s.size();
        if(size==1) return false;  //长度1没有子串,算错...
        string son1(size,s[0]);
        if(s==son1) return true;
        for (int i = 2; i < size/2+1; i++) {
            if(size%i==0){
                string son;
                for(int o=0;o<size/i;o++) son+=s.substr(0,i);  //substr截取子串:参数一是起始索引,参数二是长度
                if(son==s) return true;
            }
        }
        return false;
    }
};

class Solution2 {
public:
    bool repeatedSubstringPattern(string s) {
        string t = s + s;
        t.erase(t.begin()); t.erase(t.end() - 1); // 掐头去尾
        if (t.find(s) != std::string::npos) return true; // r
        return false;
    }
};

class Solution3 {
public:
    void getNext (int* next, const string& s){
        next[0] = -1;
        int j = -1;
        for(int i = 1;i < s.size(); i++){
            while(j >= 0 && s[i] != s[j + 1]) {
                j = next[j];
            }
            if(s[i] == s[j + 1]) {
                j++;
            }
            next[i] = j;
        }
    }
    bool repeatedSubstringPattern (string s) {
        if (s.size() == 0) {
            return false;
        }
        int next[s.size()];
        getNext(next, s);
        int len = s.size();
        if (next[len - 1] != -1 && len % (len - (next[len - 1] + 1)) == 0) {
            return true;
        }
        return false;
    }
};
int main(){
    Solution3 s3;
    string s="asdfasdfasdf";
    int next[s.size()];
    s3.getNext(next,s);
    for(int i=0;i<s.size();i++){
        cout<<next[i];
    }
}

java学习 UDP编程

package web_programing;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class UDP_client {
    public static void main(String[] args) throws IOException {
        /*
        客户端创建DatagramSocket实例时并不需要指定端口,而是由操作系统自动指定一个当前未使用的端口。
        紧接着,调用setSoTimeout(1000)设定超时1秒,意思是后续接收UDP包时,等待时间最多不会超过1秒,否则在没有收到UDP包时,客户端会无限等待下去。
        这一点和服务器端不一样,服务器端可以无限等待,因为它本来就被设计成长时间运行。
         */
        DatagramSocket ds=new DatagramSocket();
        ds.setSoTimeout(1000);
        ds.connect(InetAddress.getByName("localhost"),8081);  //还不能直接指定代理字符串,这里的连接不是长时间挂起的连接状态,而只是指定一个目标Socket
        byte[] data = "WATER".getBytes();
        DatagramPacket packet = new DatagramPacket(data, data.length);
        ds.send(packet);
        byte[] buffer = new byte[1024];
        packet = new DatagramPacket(buffer, buffer.length);
        ds.receive(packet);
        String resp = new String(packet.getData(), packet.getOffset(), packet.getLength());
        System.out.println(resp);
        ds.disconnect();
// 关闭:
        ds.close();
    }
}
阅读全文

2023/11/4

每周杂谈2023.11.2

2023.11.2

新开栏目,用来记录自己的生活点滴,美好的回忆与哲理的思考一样都应当被记录

顺便记录最近对自己的情绪影响最大的一些事件

阅读全文

2023/11/4

每日一题(bit杯题3)+java学习

斐波那契 (悬而未决,用数学推导出了公式,但是公式有相除,且除数和被除数可能极大,但是结果却正常

问题介绍:

小明最近在数学课上研究了一个类似于斐波那契数列的数列,但他忘记了这个数列的前两个数是什么,所以小明想请作为数学高手的你来帮他找出答案。

阅读全文

2023/11/4

java泛型+深度学习

jvav泛型

阅读全文
1 ... 2 3 4
avatar
bigbigbigwaterbucket

Description
至死方休