字符串全排列

/**
* Created by zzh on 2018/12/30.
*/
public class Test {
public static List<List<Character>> allSort(List<Character> chars){
if(chars.size() == 1) {
List<List<Character>> list = new ArrayList<>();
list.add(chars);
return list;
}

List<List<Character>> list = new ArrayList<>();

List<Character> useList = new ArrayList<>();
List<Character> others = new ArrayList<>(chars);

for (Character ch : chars) {

if (useList.contains(ch)) {
// 如果已经使用过重复元素的一个,就不再使用
continue;
} else {
// 记录使用过的元素
useList.add(ch);
}

// 移除当前的元素,得到剩下的元素
others.remove(ch);

// 拿剩下的数据进行全排列
List<List<Character>> othersAllSort = allSort(others);

// 当前的元素和剩下的元素的全排列,拼接下就可以了
for (List<Character> othersAllSortItem : othersAllSort) {
List<Character> dest = new ArrayList<>(othersAllSortItem);
dest.add(0, ch);

list.add(dest);
}

// 恢复元素列表,便于下次循环复用
others.add(ch);
}

return list;
}

public static void main(String[] args){
List<Character> src = Arrays.asList('a', 'a', 'b');

List<List<Character>> allSortList = allSort(src);

allSortList.forEach(Test::print);
}

private static void print(List<Character> chars){
for (Character ch : chars) {
System.out.print(ch + " ");
}
System.out.println();
}
}

a a b
a b a
b a a

怎么桥接两个无线路由器:TP-link路由器

第一台无线路由器设置

首先我们登入和宽带猫连接的路由器:如图

在无线设置-基本设置中设置“SSID号”、“信道”,设置固定信道号,如图:  

在无线设置-无线安全设置中设置无线信号加密信息

记录该无线路由器设置后的SSID、信道和加密设置信息

第二台无线路由器设置

登入需要桥接的第二台无线路由器

在网络参数-LAN口设置中,修改IP地址和第一台路由器不同(防止IP地址冲突),

如192.168.1.2,保存,路由器会自动重启。

在无线设置-基本设置中勾选“开启WDS”。点击“扫描”,搜索周围无线信号。

在扫描到的信号列表中选择第一台路由器SSID号,如下图中SSID,点击“连接”。

将信道设置成与第一台路由器信道相同。同时设置加密信息和第一台路由器相同,点击“保存”。如下图:

关闭DHCP服务器。在DHCP服务器中,选择“不启用”,保存,重启路由器。  

此时第一台无线路由器与第二台无线路由器已成功建立WDS。  

即将桥接的ap的信道是,与您的ap设置的信道不同

设置一样的AP信道,改为手动选择信道号

  • 原因作为使用帐号虚拟拨号上网的主路由器不能启用WDS,信道不能使用自动。
  • 手动选择信道号一般选1、6、11
  • 副路由器手动设置相同信道
  • 桥接输入密码
  1. 主路由器的无线安全设置
  2. 副路由器桥接安全设置
  3. 副路由器无线安全设置<注>3个安全认证方式与密码必须一致!