题解 | #MP3光标位置# #对页和翻页操作进行封装#
MP3光标位置
https://www.nowcoder.com/practice/eaf5b886bd6645dd9cfb5406f3753e15
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); String order = in.next(); Page page = new Page(1,n); for(int i = 0; i < order.length(); i++) { if (order.charAt(i) == 'U') { page.up(); }else{ page.down(); } } for(int i = page.pageMin; i <= page.pageMax; i++) { System.out.print(i); if (i != page.pageMax) { System.out.print(" "); }else{ System.out.println(); } } System.out.println(page.curNo); } static class Page{ static int MaxCount; int curNo; int pageMin; int pageMax; public Page(int curNo, int maxCount) { this.curNo = curNo; this.pageMin = curNo; MaxCount = maxCount; pageMax = MaxCount > 4 ? 4 : MaxCount; } public void down() { if (curNo < pageMax) { curNo++; }else{ // 判断翻页方式 if (pageMax < MaxCount) { pageMin++; pageMax++; curNo++; }else{ curNo = 1; pageMin = 1; pageMax = MaxCount > 4 ? 4 : MaxCount; } } } public void up() { if (curNo > pageMin) { curNo --; }else{ if (pageMin > 1) { pageMin--; pageMax--; curNo--; }else{ curNo = MaxCount; pageMax = MaxCount; if ((MaxCount - 3) > 0) { pageMin = MaxCount - 3; }else{ pageMin = 1; } } } } } }