疑问:假设极限情况下输入的字符串足够长一次读取一行会导致OOM,这题目要怎么处理?
牛客题目:找出给定字符串中大写字符(即'A'-'Z')的个数。
牛客链接:=37&&tqId=21307&rp=1&ru=/ta/huawei&qru=/ta/huawei/question-ranking
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;/*** 找出给定字符串中大写字符(即'A'-'Z')的个数。* */
public class HJ84 {public static void main(String[] args) throws IOException {List<Character> target = new ArrayList<>(26);for (char i='A'; i<='Z'; ++i) {target.add(i);}BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));String line = null;while((lineadLine())!=null) {int count = 0;for (int i = 0; i < line.length(); i++) {if (ains(line.charAt(i))) {count++;}}System.out.println(count);}}
}
用lamba表达式改进下
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.IntStream;/*** 找出给定字符串中大写字符(即'A'-'Z')的个数。* */
public class HJ84 {public static void main(String[] args) throws IOException {List<Integer> target = new ArrayList<>(26);IntStream.rangeClosed('A', 'Z').forEach(ch->target.add(ch));BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));String line = null;while((lineadLine())!=null) {long count = line.chars().filter(target::contains).count();System.out.println(count);}}
}
本文发布于:2024-01-30 03:05:05,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170655510718777.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |