洗牌_MP3光标位置
【摘要】 洗牌洗牌import java.util.*;public class Main{ public static void helpfun(int[] array,int n,int x){ // int ret = new int[2*n]; error! while(x-->0){ int[] ret = new int[n*2];...
洗牌
import java.util.*;
public class Main{
public static void helpfun(int[] array,int n,int x){
// int ret = new int[2*n]; error!
while(x-->0){
int[] ret = new int[n*2];//保存洗牌结果!
for(int i = 0;i<n;i++){
ret[2*i] = array[i]; //左手 i --> 2*i
ret[2*i+1] = array[i+n]; //右手 i+n --> 2*i+1
}
array = ret;//更新洗牌!
//这里将 ret 的引用给了 array 如果 ret 不重新声明
//会使这个array和ret在一块数组空间交换,结果错误!
}
for(int i = 0;i<2*n-1;i++){
System.out.print(array[i]+" ");
}
System.out.println(array[2*n-1]);
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
while(T-->0){
int n = sc.nextInt();
int x = sc.nextInt();//洗牌次数!
int[] array = new int[n*2];
for(int i = 0;i<2*n;i++){
array[i] = sc.nextInt();
}
helpfun(array,n,x);
}
}
}
MP3光标位置
情况比较多,但是题不难,不要胆怯!!!
import java.util.*;
public class Main {
public static void MP3PlayerLow4(String str, int n) {
char[] ch = str.toCharArray();
int begin = 1, cur = 1; // 起始序号,当前歌曲序号
for (int i = 0; i < ch.length; i++) {
if (cur == 1 && ch[i] == 'U') { // 光标在第一首歌曲上时,按Up键光标
cur = n;
continue;
}
if (cur == n && ch[i] == 'D') { // 光标在最后一首歌曲时,按Down键光标
cur = 1;
continue;
}
if (ch[i] == 'U') {
cur -= 1;
}
if (ch[i] == 'D') {
cur += 1;
}
}
for (int i = 0; i < n; i++) {
if (i==0) {
System.out.print(begin);
}else{
System.out.print(" "+(begin+i));
}
}
System.out.println();
System.out.println(cur);
}
public static void MP3PlayerUp4(String str, int n) {
char[] ch = str.toCharArray();
int begin = 1, cur = 1; // 起始序号,当前歌曲序号
for (int i = 0; i < ch.length; i++) {
if (begin==1 && cur == 1 && ch[i] == 'U') { // 光标在第一页 ,第一首歌曲上时,按Up键光标
cur = n;
begin = n-3;
continue;
}
if (begin==n-3 && cur == n && ch[i] == 'D') { // 光标在最后一页,最后一首歌曲时,按Down键光标
cur = 1;
begin = 1;
continue;
}
if (ch[i] == 'U' && begin==cur ) { // 光标在非第一页,第一首歌曲时,按Up键后,从当前歌曲的上一首开始显示,光标也挪到上一首歌曲。
cur -= 1;
begin-= 1;
continue;
}
if (ch[i] == 'D' && begin+3==cur) {
cur += 1;
begin+= 1;
continue;
}
if(ch[i] == 'U'){
cur -= 1;
}else{
cur += 1;
}
}
System.out.println(begin + " " + (begin + 1) + " " + (begin + 2)+ " " + (begin + 3));
System.out.println(cur);
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while (input.hasNextInt()) {
int n = input.nextInt(); // 歌曲数量
String str = input.next(); // 操作序列
if (n<=4)
MP3PlayerLow4(str, n);
else
MP3PlayerUp4(str, n);
}
}
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)