赞
踩
- import java.util.Scanner;
- // 注意类名必须为 Main, 不要有任何 package xxx 信息
- public class Main {
- public static void main(String[] args) {
- Scanner in = new Scanner(System.in);
- // 注意 hasNext 和 hasNextLine 的区别
- while (in.hasNextLine()) { // 注意 while 处理多个 case
- String s = in.nextLine();
- int count = 0;
- for(char c : s.toCharArray()){
- if(c == 'o'){
- count++;
- }
- }
- if(count % 2 == 0){
- System.out.println(s.length());
- }else{
- System.out.println(s.length() - 1);
- }
- }
- }
- }
本题有技巧,由于是找o出现偶数次的最大字符串长度,所以只需要考虑整个字符串o的个数出现次数是奇数次还是偶数次。若为奇数次,则最大子字符串长度为去掉一个o,若为偶数次则字符串长度就是返回值。
for(char c : s.toCharArray())
是一个增强型的 for 循环,也称为 for-each 循环。它用于遍历数组或集合中的元素,并在每次迭代中将元素赋值给循环变量。在这里,s.toCharArray()
返回一个字符数组,而char c
是循环变量,它在每次循环中被赋值为数组中的一个字符。具体地说,这行代码的作用是将字符串
s
中的每个字符依次赋值给变量c
,并在循环体中对每个字符执行相应的操作。这种写法简洁清晰,可以方便地遍历字符串中的字符。
s.toCharArray()
是一个字符串(String)的方法,它用于将字符串转换为字符数组(char[])。这个方法返回一个新的字符数组,其中包含了字符串中的所有字符,字符的顺序与它们在字符串中的顺序相同。例如,如果有一个字符串
s = "hello"
,那么s.toCharArray()
将返回一个包含字符'h', 'e', 'l', 'l', 'o'
的字符数组。这个方法通常在需要遍历字符串中的每个字符时使用,因为字符数组提供了更方便的遍历方式。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。