今天除夕夜,力扣人respect!!!
在这里祝愿所有好厚米新年快乐,万事如意,都能如愿以偿。
首先我们要将email字符串进行分割,以@为标志,前边为本地名local,后边为domain域名,域名不用判断,".“和”+“在域名中没有那样的规则;我们着重去处理本地名,先把”+“之后的省略掉,之后将所有的”."都替换成空,此处可以用String类的replace方法和replaceAll方法,参见文献1.
代码如下:class Solution { public int numUniqueEmails(String[] emails) { //因为只放一个值,用Set和List足矣,但是我们这里要求不能重复,所有只能选用Set Set今日第二题:力扣5题 解题思路:hashset = new HashSet<>(); //增强for for(String email : emails) { //找出@索引并且取出前后作为local和domain int index = email.indexOf('@'); String local = email.substring(0, index); String domain = email.substring(index); //判断local中是否包含+,有的话只要前边的 if(local.contains("+")) { local = local.substring(0, local.indexOf('+')); } //替换 . // local = local.replaceAll("\.", ""); local = local.replace(".", ""); //往hashset添加 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; //s长度为奇数 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); } } //s长度为偶数 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方法的区别
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)