最长公共子串问题的java版计算

星期三, 五月 17th, 2023 | algorithm-learn, JAVA-and-J2EE, linux | 没有评论

1.最长公共子串问题
【题目】给定两个字符串str1和str2,返回两个字符串的最长公共子串。

【举例】str1="1AB2345CD",str2="12345EF",返回"2345"。
【要求】如果 str1 长度为 M,str2 长度为N,实现时间复杂度为 O(M×N),额外空间复杂度为 O(1)的方法。
【难度】3星

/**
 * 
 * 1.最长公共子串问题 【题目】给定两个字符串str1和str2,返回两个字符串的最长公共子串。
 * 【举例】str1="1AB2345CD",str2="12345EF",返回"2345"。 【要求】如果 str1 长度为 M,str2 长度为
 * N,实现时间复杂度为 O(M×N),额外空间复杂度为 O(1)的方法。 【难度】3星
 * 
 * @author sara
 *
 */
public class MaxSubStr {
 
	public static void main(String[] args) {
		String str1="1AB2345CD",str2="12345EF";
		String str = getMaxSub(str1,str2);
		System.out.println(str);
	}
 
	public static String getMaxSub(String s1, String s2) {
		String sStr = s1, mStr = s2;
		if (s1.length() > s2.length()) {
			sStr = s2;
			mStr = s1;
		}
		String str = "";
		for (int i = 0; i < sStr.length(); i++) {
			for (int j = 1; j < sStr.length() - i; j++) {
				if (mStr.contains(sStr.substring(i, i + j)) && j > str.length()) {
					str = sStr.substring(i, i + j);
				}
			}
		}
		return str;
	}
 
	public static void getDp(char[] str1, char[] str2) {
 
	}
 
}

Tags:

linux、centos等配置不输入密码切换sudo指令

星期二, 五月 16th, 2023 | JAVA-and-J2EE, linux | 没有评论

使用 pkexec 安全配置指定用户不输入密码切换sudo su指令

1.pkexec su可进入你的root

pkexec visudo 进入visudo命令
直接编辑修改

ctrl + x 保存退出

编辑的也是此文件,在对应的用户前面加上NOPASSWD即可
在/etc/sudoers文件

sa ALL=(ALL) NOPASSWD:ALL

2.小问题修复 为了能编辑/etc/sudoers 执行给了777权限

出现如下错误

sudo: /etc/sudoers is world writable
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

修复此错误:

 
pkexec chmod 0440 /etc/sudoers

Tags: ,

JS Code block 代码块–URL

星期二, 四月 18th, 2023 | computer, 前端 | 没有评论

URL
获取window.URL 实例
获取url中的参数
删除url中参数
增加url中的参数
获取URL里domain
返回url的pathName
http协议转换为https
将dataURL转换为blob
blob2DataURL

› Continue reading

Tags:

JS Code block 代码块–dom

星期二, 四月 18th, 2023 | computer, 前端 | 没有评论

dom
获取一级子节点
获取兄弟节点
获取元素相对于视口的位置信息
判定节点里是否有class
添加class
删除class
替换class
dom对象转换成字符串
给页面添加js和css
禁用浏览器的默认行为
获取当前元素,或窗口的滚动位置
判断一个对象是否为Dom对象
获取HTML里的文字内容
字符串的转义
字符串的反转义
将文本插入到文本区域的光标位置
浏览器全屏
退出全屏
是否是Element
› Continue reading

Tags:

JS Code block 代码块–对象(Object)

星期二, 四月 18th, 2023 | computer, 前端 | 没有评论

对象(Object)
校验对象是否是某个类型
是否对象类型
是否数组类型
是否数组
是否是字符串
是否时blob
判断对象是否为空
class 类多继承
判断参数是不是blob
深层克隆对象
两个对象(值)之间的深入比较,以确定它们是否相等
过滤对象中为空的属性
反转对象的键值对
数组转换为键值对的对象
对象转化为键值对
› Continue reading

Tags:

JS Code block 代码块–Storage (localStorage, sessionStorage)

星期二, 四月 18th, 2023 | computer, 前端 | 没有评论

Storage (localStorage, sessionStorage)
设置localStorage
获取localStorage
移除localStorage
移除所有localStorage
设置sessionStorage
获取sessionStorage
移除sessionStorage
移除所有sessionStorage
› Continue reading

Tags:

JS Code block 代码块–cookie

星期二, 四月 18th, 2023 | computer, 前端 | 没有评论

cookie
获取cookie 里的值
设置cookie
删除cookie

/**
 * 获取cookie 里的值
 * @param {String} key
 */
export const getCookie = (key) => {
  const arr = document.cookie.match(new RegExp(`(^| )${key}=([^;]*)(;|$)`));
  if (arr != null) return unescape(arr[2]);
  return null;
}
 
/**
 * 设置cookie
 * @param name
 * @param value
 * @param day expires的时间
 */
function setCookie (name, value, day) {
    let setting = arguments[0];
    if (Object.prototype.toString.call(setting).slice(8, -1) === 'Object'){
        for (let i in setting) {
            let oDate = new Date();
            oDate.setDate(oDate.getDate() + day);
            document.cookie = i + '=' + setting[i] + ';expires=' + oDate;
        }
    }else{
        let oDate = new Date();
        oDate.setDate(oDate.getDate() + day);
        document.cookie = name + '=' + value + ';expires=' + oDate;
    }
 
}
 
/** 
 * 删除cookie
 */
function removeCookie (name) {
    setCookie(name, 1, -1);
}

Tags:

JS Code block 代码块–动态数字插件 scrollNum

星期二, 四月 18th, 2023 | computer, 前端 | 没有评论

动态数字插件 scrollNum
插件介绍
动态数字插件可以实现在一个dom容器内播放数字动画,数字动画分为两种,一种是区间变化,动画效果类似于数值从一个起始数值不断更新显示至终止值;还用一种是区间滚动,动画效果类似于老虎机。
区间滚动
区间变化

插件js地址
//lib.eqh5.com/@eqxiu/eqxH5DyNum/1.0.0/EqxH5DyNum.js
//lib.eqh5.com/@eqxiu/eqxH5DyNum/1.0.0/EqxH5DyNum.min.js
建议将js文件放入项目本地使用

插件使用方法
引入动态数字插件的js文件后,new EqxH5DyNum后创建一个实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
const dy = new EqxH5DyNum({
    startNum: 0,
    endNum: 100,
    animDuration: 2,
    isShowThousandSeparator: false,
    endOrder: 'left',
    isEndRandom: false,
    $ele: $('.container')
});
 
// 播放区间变化动画
dy.numChange().then(() => {
    // 区间变化动画播放完执行
})
 
// 播放区间滚动动画
dy.numScroll().then(() => {
    // 区间滚动动画播放完执行
})
 
// 更新部分或全部实例参数,并播放区间变化动画
dy.update({
    startNum: 100,
    endNum: 0,
    animDuration: 5,
}).numChange()

› Continue reading

Tags:

JS Code block 代码块–颜色

星期一, 四月 17th, 2023 | computer, 前端 | 没有评论

颜色
匹配rgba的正则
匹配透明度为0的rgba正则
hex转换为RGBA
rgb转Hex
获得随机的颜色值
是否为有效的16进制颜色
› Continue reading

Tags:

JS Code block 代码块–Math

星期一, 四月 17th, 2023 | computer, 前端 | 没有评论

Math
计算两点的距离
组合C
求最大公约数
是否可以整除
最小公倍数
斐波那契数组生成器
› Continue reading

Tags:

Search

文章分类

Meta