当前位置: 首页 > news >正文

[USACO1.1] 坏掉的项链 Broken Necklace Java

import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();String str = sc.next();sc.close();str += str; // 模拟环形两端连接int max = 0;for (int i = 0; i < n; i++) {int l = i, r = i + 1;char lc = str.charAt(l), rc = str.charAt(r);if (lc == 'w') { // 往左查找到第一颗非白珠子int k = l - 1;while (k >= 0 && str.charAt(k) == 'w') k--;lc = k >= 0 ? str.charAt(k) : 'r'; // 找不到则默认红色}if (rc == 'w') { // 往右查找到第一颗非白珠子int k = r + 1;while (k < str.length() && str.charAt(k) == 'w') k++;rc = k < str.length() ? str.charAt(k) : 'b'; // 找不到则默认蓝色}int ans = 0;// 左端连续的非白珠子数while (l >= 0 && (str.charAt(l) == lc || str.charAt(l) == 'w')) {ans++;l--;}// 右端连续的非白珠子数while (r < n * 2 && (str.charAt(r) == rc || str.charAt(r) == 'w')) {ans++;r++;}max = Math.max(max, Math.min(ans, n)); // 取最大值同时防止ans超过总数n}System.out.println(max);}
}

每日一水~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

相关文章:

  • DockerDesktop替换方案
  • Spring Boot 集成 Solr 的详细步骤及示例
  • 36.金属壳体材料的选择与工艺处理对EMC的影响
  • C++ STL 容器详解:vector、string 和 map 的完全指南
  • kotlin中枚举带参数和不带参数的区别
  • C# 方法(局部函数和参数)
  • DDR在PCB布局布线时的注意事项及设计要点
  • SpringMVC框架详解与实践指南
  • 字符串,数组,指针之间的关系
  • 【NLP】 26. 语言模型原理与概率建模方法详解(Language Models)
  • FreeRTOS学习系列·二值信号量
  • TCP 与 UDP报文
  • 《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》封面颜色空间一图的选图历程
  • linux系统基本操作命令
  • asyncio:Python的异步编程
  • Lua 元表和元方法
  • 【ArcGIS Pro微课1000例】0066:多边形要素添加折点,将曲线线段(贝塞尔、圆弧和椭圆弧)替换为线段?
  • Webug4.0靶场通关笔记16- 第20关文件上传(截断上传)
  • 【NLP】 31. Retrieval-Augmented Generation(RAG):KNN-LM, RAG、REALM、RETRO、FLARE
  • # 从零构建一个简单的卷积神经网络:手写数字识别
  • AI世界的年轻人|横跨教育与产业,他说攻克前沿问题是研究者的使命
  • 贵州黔西市载人游船倾覆事故已致3人遇难,14人正在搜救中
  • 执掌伯克希尔60年,股神巴菲特宣布年底交出最终决定权:阿贝尔将接任CEO
  • 一代名伶程砚秋经典影像:一箱旧影,芳华满堂
  • 5月1日全国铁路发送旅客2311.9万人次,创历史新高
  • 同日哑火丢冠,双骄的下山路,手牵手一起走