修改计算机网路
This commit is contained in:
11
code/src/main/java/com/raorao/interview/toutiao/T.java
Normal file
11
code/src/main/java/com/raorao/interview/toutiao/T.java
Normal file
@ -0,0 +1,11 @@
|
||||
package com.raorao.interview.toutiao;
|
||||
|
||||
/**
|
||||
* .
|
||||
*
|
||||
* @author Xiong Raorao
|
||||
* @since 2018-08-25-10:02
|
||||
*/
|
||||
public class T {
|
||||
|
||||
}
|
25
code/src/main/java/com/raorao/interview/toutiao/t1/Main.java
Normal file
25
code/src/main/java/com/raorao/interview/toutiao/t1/Main.java
Normal file
@ -0,0 +1,25 @@
|
||||
package com.raorao.interview.toutiao.t1;
|
||||
|
||||
/**
|
||||
* .
|
||||
*
|
||||
* @author Xiong Raorao
|
||||
* @since 2018-08-25-10:02
|
||||
*/
|
||||
public class Main {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
}
|
||||
|
||||
private static void process(boolean[][] arr) {
|
||||
int num = 1;
|
||||
int m = arr.length;
|
||||
int n = arr[0].length;
|
||||
for (int i = 0; i < m; i++) {
|
||||
for (int j = 0; j < n; j++) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
88
code/src/main/java/com/raorao/interview/toutiao/t2/Main.java
Normal file
88
code/src/main/java/com/raorao/interview/toutiao/t2/Main.java
Normal file
@ -0,0 +1,88 @@
|
||||
package com.raorao.interview.toutiao.t2;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Scanner;
|
||||
|
||||
/**
|
||||
* 字符串.
|
||||
*
|
||||
* @author Xiong Raorao
|
||||
* @since 2018-08-25-10:31
|
||||
*/
|
||||
public class Main {
|
||||
|
||||
public static void main(String[] args) {
|
||||
Scanner scanner = new Scanner(System.in);
|
||||
int t = Integer.parseInt(scanner.nextLine());
|
||||
List<String> ret = new ArrayList<>();
|
||||
List<List<String>> inputs = new ArrayList<>();
|
||||
for (int i = 0; i < t; i++) {
|
||||
int n = Integer.parseInt(scanner.nextLine());
|
||||
List<String> temp = new ArrayList<>();
|
||||
while (n-- > 0) {
|
||||
temp.add(scanner.nextLine());
|
||||
}
|
||||
inputs.add(temp);
|
||||
}
|
||||
for (List<String> list : inputs) {
|
||||
ret.add(process(list));
|
||||
}
|
||||
for (String s : ret) {
|
||||
System.out.println(s);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static String process(List<String> strings) {
|
||||
List<String> ret = new ArrayList<>();
|
||||
for (int i = 0; i < strings.size(); i++) {
|
||||
for (int j = i + 1; j < strings.size(); j++) {
|
||||
ret.add(process(strings.get(i), strings.get(j)));
|
||||
}
|
||||
}
|
||||
for (String s:ret){
|
||||
if (s.equals("Yeah")){
|
||||
return "Yeah";
|
||||
}
|
||||
}
|
||||
return "Sad";
|
||||
}
|
||||
|
||||
private static String process(String s1, String s2) {
|
||||
char start = s2.charAt(0);
|
||||
List<String> starts = find(s1, start);
|
||||
for (String s : starts) {
|
||||
if (s.equals(s2)) {
|
||||
return "Yeah";
|
||||
}
|
||||
}
|
||||
return "Sad";
|
||||
}
|
||||
|
||||
private static List<String> find(String s1, char start) {
|
||||
List<String> ret = new ArrayList<>();
|
||||
for (int i = 0; i < s1.length(); i++) {
|
||||
if (start == s1.charAt(i)) {
|
||||
String tmp1 = s1.substring(i + 1, s1.length());
|
||||
String tmp;
|
||||
if (i == 0) {
|
||||
tmp = tmp1;
|
||||
} else {
|
||||
tmp = tmp1 + s1.substring(0, i);
|
||||
}
|
||||
ret.add(start + tmp);
|
||||
ret.add(start + invert(tmp));
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
private static String invert(String s) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = s.length() - 1; i >= 0; i--) {
|
||||
sb.append(s.charAt(i));
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
67
code/src/main/java/com/raorao/interview/toutiao/t5/Main.java
Normal file
67
code/src/main/java/com/raorao/interview/toutiao/t5/Main.java
Normal file
@ -0,0 +1,67 @@
|
||||
package com.raorao.interview.toutiao.t5;
|
||||
|
||||
import java.util.Scanner;
|
||||
|
||||
/**
|
||||
* .
|
||||
*
|
||||
* @author Xiong Raorao
|
||||
* @since 2018-08-25-11:30
|
||||
*/
|
||||
public class Main {
|
||||
|
||||
private static final String ERR = "cannot_answer";
|
||||
|
||||
public static void main(String[] args) {
|
||||
Scanner scanner = new Scanner(System.in);
|
||||
String[] line1 = scanner.nextLine().split(" ");
|
||||
int n = Integer.parseInt(line1[0]);
|
||||
int m = Integer.parseInt(line1[1]);
|
||||
char[] y = new char[n];
|
||||
int[] k = new int[n];
|
||||
char[] x = new char[n];
|
||||
char[][] q = new char[m][2];
|
||||
for (int i = 0; i < n; i++) {
|
||||
String line = scanner.nextLine();
|
||||
String[] eq = line.split(" = ");
|
||||
y[i] = eq[0].charAt(0);
|
||||
String[] eq2 = eq[1].split(" - ");
|
||||
k[i] = Integer.parseInt(eq2[0]);
|
||||
x[i] = eq2[1].charAt(0);
|
||||
}
|
||||
for (int i = 0; i < m; i++) {
|
||||
String line = scanner.nextLine();
|
||||
String[] eq = line.split(" - ");
|
||||
q[i][0] = eq[0].charAt(0);
|
||||
q[i][1] = eq[1].charAt(0);
|
||||
}
|
||||
|
||||
String[] ret = new String[2];
|
||||
for (int i = 0; i < m; i++) {
|
||||
ret[i] = process(y, k, x, q[i]);
|
||||
}
|
||||
for (String s : ret) {
|
||||
System.out.println(s);
|
||||
}
|
||||
}
|
||||
|
||||
private static String process(char[] y, int[] k, char[] x, char[] q) {
|
||||
int index1 = getIndex(y, q[0]);
|
||||
int index2 = getIndex(x, q[1]);
|
||||
if (index1 != -1 && index2 != -1 && index1 != index2) {
|
||||
int res = k[index1] - k[index2];
|
||||
return String.valueOf(res);
|
||||
}
|
||||
return ERR;
|
||||
}
|
||||
|
||||
private static int getIndex(char[] chars, int q) {
|
||||
for (int i = 0; i < chars.length; i++) {
|
||||
if (q == chars[i]) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
}
|
45
code/src/main/java/com/raorao/java/socket/TCPClient.java
Normal file
45
code/src/main/java/com/raorao/java/socket/TCPClient.java
Normal file
@ -0,0 +1,45 @@
|
||||
package com.raorao.java.socket;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.Socket;
|
||||
|
||||
/**
|
||||
* .
|
||||
*
|
||||
* @author Xiong Raorao
|
||||
* @since 2018-08-27-22:40
|
||||
*/
|
||||
public class TCPClient {
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
//创建两个String类型的字符串用来发送和接受
|
||||
String sentence;
|
||||
String modifiedSentence;
|
||||
|
||||
//创建输入流,用来接受键盘输入
|
||||
BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
|
||||
|
||||
//创建一个Socket类型的 clientSocket 用来发起服务器和客户机之间的连接
|
||||
Socket clientSocket = new Socket("127.0.0.1", 6789);
|
||||
|
||||
//创建向服务器发送信息的输出流
|
||||
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
|
||||
|
||||
//创建输入流,用来接收来自服务器的字节流
|
||||
BufferedReader inFormServer = new BufferedReader(
|
||||
new InputStreamReader(clientSocket.getInputStream()));
|
||||
|
||||
//读流数据
|
||||
sentence = inFromUser.readLine();
|
||||
|
||||
//向服务器发送sentence的字节数据
|
||||
outToServer.writeBytes(sentence + '\n');
|
||||
|
||||
//获取字节流数据为String
|
||||
modifiedSentence = inFormServer.readLine();
|
||||
|
||||
System.out.println("Form Server :" + modifiedSentence);
|
||||
}
|
||||
}
|
46
code/src/main/java/com/raorao/java/socket/TCPServer.java
Normal file
46
code/src/main/java/com/raorao/java/socket/TCPServer.java
Normal file
@ -0,0 +1,46 @@
|
||||
package com.raorao.java.socket;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.ServerSocket;
|
||||
import java.net.Socket;
|
||||
import java.nio.channels.Channel;
|
||||
|
||||
/**
|
||||
* .
|
||||
*
|
||||
* @author Xiong Raorao
|
||||
* @since 2018-08-27-22:39
|
||||
*/
|
||||
public class TCPServer {
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
String clientSentence;
|
||||
String capitalizedSentence;
|
||||
|
||||
//服务器Socket用来建立连接
|
||||
ServerSocket welcomeSocket = new ServerSocket(6789);
|
||||
|
||||
while (true) {
|
||||
|
||||
//用这个连接来获取和发送,自客户端发的数据流
|
||||
Socket connectionSocket = welcomeSocket.accept();
|
||||
|
||||
//获取来自客户端的字节流
|
||||
BufferedReader inFromClient = new BufferedReader(
|
||||
new InputStreamReader(connectionSocket.getInputStream()));
|
||||
|
||||
//发送更改后的数据流
|
||||
DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
|
||||
|
||||
//读取字节成String字符串
|
||||
clientSentence = inFromClient.readLine();
|
||||
|
||||
capitalizedSentence = clientSentence.toUpperCase() + '\n';
|
||||
|
||||
outToClient.writeBytes(capitalizedSentence);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
60
code/src/main/java/com/raorao/java/socket/UDPClient.java
Normal file
60
code/src/main/java/com/raorao/java/socket/UDPClient.java
Normal file
@ -0,0 +1,60 @@
|
||||
package com.raorao.java.socket;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.DatagramPacket;
|
||||
import java.net.DatagramSocket;
|
||||
import java.net.InetAddress;
|
||||
|
||||
/**
|
||||
* .
|
||||
*
|
||||
* @author Xiong Raorao
|
||||
* @since 2018-08-27-22:29
|
||||
*/
|
||||
public class UDPClient {
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
//读取键盘输入的字节流
|
||||
BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
|
||||
|
||||
//为客户机创建了一个传输信息的门,但是并没与向TCP那样建立连接
|
||||
DatagramSocket clientSocket = new DatagramSocket();
|
||||
|
||||
//这行代码调用了DNS查询,查询主机名对应的IP地址,后面要用这个地址来向服务器发送信息
|
||||
InetAddress IPAddress = InetAddress.getByName("localhost");
|
||||
|
||||
//需要发送的字节数组
|
||||
byte[] sendData;
|
||||
|
||||
//接受的字节数组
|
||||
byte[] receiveData = new byte[1024];
|
||||
|
||||
String sentence = inFromUser.readLine();
|
||||
|
||||
//将字符串转为字节放入sendData
|
||||
sendData = sentence.getBytes();
|
||||
|
||||
//UDP数据报分组,里面包含想要发送的内容以及目的地址等信息
|
||||
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 9876);
|
||||
|
||||
//用这个‘门’来发送这个数据包
|
||||
clientSocket.send(sendPacket);
|
||||
|
||||
//获取数据报分组
|
||||
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
|
||||
|
||||
//用‘门’获取数据报
|
||||
clientSocket.receive(receivePacket);
|
||||
|
||||
//将获取的数据报转为String类型数据
|
||||
String modifiedSentence = new String(receivePacket.getData());
|
||||
|
||||
System.out.println("From Server:" + modifiedSentence);
|
||||
|
||||
//关闭这个门
|
||||
clientSocket.close();
|
||||
|
||||
}
|
||||
|
||||
}
|
46
code/src/main/java/com/raorao/java/socket/UDPServer.java
Normal file
46
code/src/main/java/com/raorao/java/socket/UDPServer.java
Normal file
@ -0,0 +1,46 @@
|
||||
package com.raorao.java.socket;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.DatagramPacket;
|
||||
import java.net.DatagramSocket;
|
||||
import java.net.InetAddress;
|
||||
|
||||
/**
|
||||
* .
|
||||
*
|
||||
* @author Xiong Raorao
|
||||
* @since 2018-08-27-22:19
|
||||
*/
|
||||
public class UDPServer {
|
||||
|
||||
public static void main(String[] args) throws IOException {
|
||||
DatagramSocket serverSocket = new DatagramSocket(9876);
|
||||
byte[] receiveData = new byte[1024];
|
||||
|
||||
byte[] sendData;
|
||||
|
||||
while(true){
|
||||
|
||||
DatagramPacket receivePacket = new DatagramPacket(receiveData,receiveData.length);
|
||||
|
||||
serverSocket.receive(receivePacket);
|
||||
|
||||
String sentence = new String(receivePacket.getData());
|
||||
|
||||
InetAddress IPAddress = receivePacket.getAddress();
|
||||
|
||||
int port = receivePacket.getPort();
|
||||
|
||||
String capitalized = sentence.toUpperCase();
|
||||
|
||||
sendData = capitalized.getBytes();
|
||||
|
||||
DatagramPacket sendPacket = new DatagramPacket(sendData,sendData.length,IPAddress,port);
|
||||
|
||||
serverSocket.send(sendPacket);
|
||||
System.out.println("Recived: " + sentence + "from " + IPAddress + ":" + port);
|
||||
System.out.println("Send back:" + capitalized);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
package com.raorao.java.test;
|
||||
|
||||
/**
|
||||
* .
|
||||
*
|
||||
* @author Xiong Raorao
|
||||
* @since 2018-08-10-23:27
|
||||
*/
|
||||
public class A {
|
||||
|
||||
}
|
Reference in New Issue
Block a user