2020-09-12

网易测试工程师笔试

  1. 题型:单选+多选+填空+编程

  2. 知识点:
    关系型数据库:sql server\oracle\mysql
    把四封不同的信投入三个不同的邮箱,共有(36)投法.
    计算机网络应用层协议有哪些:
    1、远程登录协议(Telnet)
    2、文件传输协议(FTP)
    3、超文本传输协议(HTTP)
    4、域名服务协议(DNS)
    5、简单邮件传输协议(SMTP)
    6、邮局协议(POP3)
    在这里插入图片描述

  3. 编程题:
    输入:一个字符串
    输出:回文字符串个数
    描述
    这个题目说的是,给你一个字符串,你要计算出它所包含的回文子串个数。只要起始下标或终止下标不同,即使子串相同,我们也认为是不同的回文子串。
    比如说,给你的字符串是:abc
    这个字符串中总共有 3 个回文子串,分别是 a, b 和 c。因此你要返回的个数是 3。
    再比如说,给你的字符串是:aba
    这个字符串中总共有 4 个回文子串,分别是 a,b,a,和 aba。因此你要返回的个数是 4。
    代码:
    public class AlgoCasts {

// Time: O(n^2), Space: O(n^2)
public int countPalindromicSubstringsDP(String s) {
if (s == null || s.length() == 0) return 0;
int n = s.length(), count = 0;
boolean[][] d = new boolean[n][n];
for (int i = n - 1; i >= 0; --i) {
for (int j = i; j < n; ++j) {
if (i == j) d[i][j] = true;
else if (i+1 == j) d[i][j] = s.charAt(i) == s.charAt(j);
else d[i][j] = s.charAt(i) == s.charAt(j) && d[i+1][j-1];
if (d[i][j]) ++count;
}
}
return count;
}

int expand(String s, int left, int right) {
int count = 0;
while (left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right)) {
++count;
–left; ++right;
}
return count;
}

// Time: O(n^2), Space: O(1)
public int countPalindromicSubstringsExpand(String s) {
if (s == null || s.length() == 0) return 0;
int count = 0;
for (int i = 0; i < s.length(); ++i) {
count += expand(s, i, i);
count += expand(s, i, i+1);
}
return count;
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值