package com.tarena.test.B20;
import java.util.Arrays;
import java.util.Scanner;
/**
*
*
题目描述:
输入一个由n个大小写字母组成的字符串,按照Ascii码从小到大的排序规则,查找字符串中第k个最小ascii码值的字母(k>=1),输出该字母所在字符串的位置索引(字符串的第一个字符位置索引为0)
k如果大于字符串长度,则输出最大ascii值的字母所在字符的位置索引,如果有重复的字母,则输出字母的最小位置索引。
输入描述:
第一行输入一个由大小写字母组成的字符串
第二行输入k,k必须大于0,k可以大于输入字符的长度
输出描述:
输出字符串中第k个最小ascii码值的字母所在字符串的位置索引,k如果大于字符串长度,则输出最大ascii值的字母所在字符串的位置索引,如果第k个最小ascii码值的字母存在重复,则输出该字母的最小位置索引
示例1
输入:
AbcDeFG
3
输出:
5
示例2
输入:
AbCdeFeeeeG
20
输出:4
*/
public class B28 {
public static void main(String[] args) {
try(Scanner sc = new Scanner(System.in)){
String str = sc.nextLine();
int index = Integer.parseInt( sc.nextLine());
System.out.println(resultStr(index,str));
}
}
public static Integer resultStr(Integer index,String str) {
char[] arr = str.toCharArray();
Arrays.sort(arr);
if(index>arr.length) {
index = arr.length;
}
char c = arr[index-1];
int minIndex = str.indexOf(c);
return minIndex;
}
}
了解知识点
1、ASCII 大小写的编码
2、 Arrays 默认排序规则