今天除夕夜,力扣人respect!!! 在这里祝愿所有好厚米新年快乐,万事如意,都能如愿以偿。
解题思路:
首先我们要将email字符串进行分割,以@为标志,前边为本地名local,后边为domain域名,域名不用判断,".“和”+“在域名中没有那样的规则;我们着重去处理本地名,先把”+“之后的省略掉,之后将所有的”."都替换成空,此处可以用String类的replace方法和replaceAll方法,参见文献1.
代码如下:
class Solution {
public int numUniqueEmails(String[] emails) {
Set<String> hashset = new HashSet<>();
for(String email : emails) {
int index = email.indexOf('@');
String local = email.substring(0, index);
String domain = email.substring(index);
if(local.contains("+")) {
local = local.substring(0, local.indexOf('+'));
}
local = local.replace(".", "");
hashset.add(local + domain);
}
return hashset.size();
}
}
解题思路:
从左至右依次将字符作为回文字符串的中间字符,如果s是单数,则从中间的一个开始向左向右开始遍历;如果是双数,则从中间的两个开始分别从左从右开始遍历。
代码如下:
class Solution {
public String longestPalindrome(String s) {
String res = "";
for(int i = 0; i < s.length(); i++) {
int j, k;
for(j = i, k = i; j >= 0 && k < s.length() && s.charAt(j) == s.charAt(k); j--, k++) {
if(res.length() < k-j+1) {
res = s.substring(j, k+1);
}
}
for(j = i, k = i+1; j >= 0 && k < s.length() && s.charAt(j) == s.charAt(k); j--, k++) {
if(res.length() < k-j+1) {
res = s.substring(j, k+1);
}
}
}
return res;
}
}
参考文献:
1.replace java_Java中String类下的replace和replaceAll方法的区别
|