iis怎么设置网站,wordpress写作插件,工业信息化网站备案系统,成都市住房和建设局官网393. 判断子序列
给定字符串 s 和 t #xff0c;判断 s 是否为 t 的子序列。
字符串的一个子序列是原始字符串删除一些#xff08;也可以不删除#xff09;字符而不改变剩余字符相对位置形成的新字符串。#xff08;例如#xff0c;ace是abcde的…393. 判断子序列
给定字符串 s 和 t 判断 s 是否为 t 的子序列。
字符串的一个子序列是原始字符串删除一些也可以不删除字符而不改变剩余字符相对位置形成的新字符串。例如ace是abcde的一个子序列而aec不是。
进阶
如果有大量输入的 S称作 S1, S2, ... , Sk 其中 k 10亿你需要依次检查它们是否为 T 的子序列。在这种情况下你会怎样改变代码
致谢
特别感谢 pbrother 添加此问题并且创建所有测试用例。 示例 1
输入s abc, t ahbgdc
输出true示例 2
输入s axc, t ahbgdc
输出false提示
0 s.length 1000 t.length 10^4两个字符串都只由小写字符组成。
class Solution {public boolean isSubsequence(String s, String t) {char arrs[]s.toCharArray();char arrt[]t.toCharArray();int j0;if(s.length()0)return true;for (int i 0; i t.length(); i) {if(arrs[j]arrt[i]){j;}if(js.length()){return true;}}return false;}
} 1491. 去掉最低工资和最高工资后的工资平均值
给你一个整数数组 salary 数组里每个数都是 唯一 的其中 salary[i] 是第 i 个员工的工资。
请你返回去掉最低工资和最高工资以后剩下员工工资的平均值。 示例 1
输入salary [4000,3000,1000,2000]
输出2500.00000
解释最低工资和最高工资分别是 1000 和 4000 。
去掉最低工资和最高工资以后的平均工资是 (20003000)/2 2500示例 2
输入salary [1000,2000,3000]
输出2000.00000
解释最低工资和最高工资分别是 1000 和 3000 。
去掉最低工资和最高工资以后的平均工资是 (2000)/1 2000示例 3
输入salary [6000,5000,4000,3000,2000,1000]
输出3500.00000示例 4
输入salary [8000,9000,2000,3000,6000,1000]
输出4750.00000提示
3 salary.length 10010^3 salary[i] 10^6salary[i] 是唯一的。与真实值误差在 10^-5 以内的结果都将视为正确答案。
class Solution {public double average(int[] salary) {int maxsalary[0];int minsalary[0];int sum0;for(int i0;isalary.length;i){sumsalary[i];if(salary[i]max){maxsalary[i];}if(salary[i]min){minsalary[i];}}int nsalary.length-2;sumsum-max-min;return (double)sum/n;}
}
509. 斐波那契数
斐波那契数 通常用 F(n) 表示形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始后面的每一项数字都是前面两项数字的和。也就是
F(0) 0F(1) 1
F(n) F(n - 1) F(n - 2)其中 n 1给定 n 请计算 F(n) 。 示例 1
输入n 2
输出1
解释F(2) F(1) F(0) 1 0 1示例 2
输入n 3
输出2
解释F(3) F(2) F(1) 1 1 2示例 3
输入n 4
输出3
解释F(4) F(3) F(2) 2 1 3提示
0 n 30
class Solution {public int fib(int n) {if(n0)return 0;if(n1)return 1;return fib(n-1)fib(n-2);}
}
1652. 拆炸弹
你有一个炸弹需要拆除时间紧迫你的情报员会给你一个长度为 n 的 循环 数组 code 以及一个密钥 k 。
为了获得正确的密码你需要替换掉每一个数字。所有数字会 同时 被替换。
如果 k 0 将第 i 个数字用 接下来 k 个数字之和替换。如果 k 0 将第 i 个数字用 之前 k 个数字之和替换。如果 k 0 将第 i 个数字用 0 替换。
由于 code 是循环的 code[n-1] 下一个元素是 code[0] 且 code[0] 前一个元素是 code[n-1] 。
给你 循环 数组 code 和整数密钥 k 请你返回解密后的结果来拆除炸弹 示例 1
输入code [5,7,1,4], k 3
输出[12,10,16,13]
解释每个数字都被接下来 3 个数字之和替换。解密后的密码为 [714, 145, 457, 571]。注意到数组是循环连接的。示例 2
输入code [1,2,3,4], k 0
输出[0,0,0,0]
解释当 k 为 0 时所有数字都被 0 替换。示例 3
输入code [2,4,9,3], k -2
输出[12,5,6,13]
解释解密后的密码为 [39, 23, 42, 94] 。注意到数组是循环连接的。如果 k 是负数那么和为 之前 的数字。提示
n code.length1 n 1001 code[i] 100-(n - 1) k n - 1
class Solution {public int[] decrypt(int[] code, int k) {int [] code1new int [code.length];if(k0){for(int i0;icode.length;i){code1[i]0;}}else if(k0){for(int i0;icode.length;i){int ti1;for(int j0;jk;j){if(tcode.length){t0;}code1[i]code[t];t;}}}else{for(int i0;icode.length;i){int ti-1;for(int j0;jk;j--){if(t0){tcode.length-1;}code1[i]code[t];t--;}}}return code1;}
}
LCR 182. 动态口令
某公司门禁密码使用动态口令技术。初始密码为字符串 password密码更新均遵循以下步骤
设定一个正整数目标值 target将 password 前 target 个字符按原顺序移动至字符串末尾
请返回更新后的密码字符串。 示例 1
输入: password s3cur1tyC0d3, target 4
输出: r1tyC0d3s3cu示例 2
输入: password lrloseumgh, target 6
输出: umghlrlose提示
1 target password.length 10000
class Solution {public String dynamicPassword(String password, int target) {String ppassword.substring(0,target);String qpassword.substring(target,password.length());return qp;}
}