有一个只由字符'1'到'9'组成的长度为 的字符串
,现在可以截取其中一段长度为
的子串并且将该子串当作十进制的正整数,如对于子串"123",其对应的十进制数字就是
。
如果想让这个正整数尽可能的大的话,问该正整数最大能是多少。
函数传入一个长度为 的字符串
和一个正整数
,请你返回答案。
有一个只由字符'1'到'9'组成的长度为 的字符串
,现在可以截取其中一段长度为
的子串并且将该子串当作十进制的正整数,如对于子串"123",其对应的十进制数字就是
。
如果想让这个正整数尽可能的大的话,问该正整数最大能是多少。
函数传入一个长度为 的字符串
和一个正整数
,请你返回答案。
"321",2
32
所有长度为的子串为:"32"和"21",显然
是最大的。
"1234",4
1234
所有长度为的子串只有它自己本身,因此答案为
。
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @param k int整型
* @return int整型
*/
public int maxValue (String s, int k) {
// write code here
int maxValue = -1;
for(int i = 0; i <= s.length() - k; i++)
maxValue = Math.max(maxValue, Integer.parseInt(s.substring(i, i + k)));
return maxValue;
}
} class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @param k int整型
* @return int整型
*/
int maxValue(string s, int k) {
// write code here
int n = s.length();
if(k>=n) return stoi(s);
int pre = stoi(s.substr(0, k));
for(int i=1; i<n-k; i++)
{
int val = stoi(s.substr(i, k));
if(val > pre)
pre = val;
}
return pre;
}
}; class Solution: def maxValue(self , s , k ): max_num = 0 for i in range(len(s) - k + 1): num = int(s[i:i+k]) if num > max_num: max_num = num return max_num
public static int maxValue(String s, int k) {
// write code here
int MOD = (int) Math.pow(10, k - 1), max = 0, current = 0;
for (int i = 0; i < s.length(); i++) {
if (i < k){
max = max * 10 + (s.charAt(i) - '0');
current = max;
}
else {
int nextTmp = current % MOD * 10 + (s.charAt(i) - '0');
if (nextTmp > max) max = nextTmp;
current = nextTmp;
}
}
return k >= s.length() ? Integer.parseInt(s) : max;
} public static int maxValue (String s, int k) {
int startIndex = 0;
int endIndex = k;
TreeSet treeSet = new TreeSet();
for (int i = 0; i <= s.length() - k; i++) {
String substring = s.substring(startIndex, endIndex);
Integer integer = Integer.valueOf(substring);
treeSet.add(integer);
startIndex += 1;
endIndex+=1;
}
Object last = treeSet.last();
Integer integer1 = (Integer) last;
return integer1;
}
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @param k int整型
* @return int整型
*/
public int maxValue (String s, int k) {
// write code here
// 1 2 3 4
int max = Integer.MIN_VALUE;
for(int i = 0; i < s.length() - k + 1; i++) {
int cur = Integer.valueOf(s.substring(i, i + k));
if(max < cur) max = cur;
}
return max;
}
} import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @param k int整型
* @return int整型
*/
public int maxValue (String s, int k) {
// write code here
int max=Integer.MIN_VALUE;
for(int i=0;i<=s.length()-k;i++){
int num=Integer.valueOf(s.substring(i,i+k));
max=Math.max(num,max);
}
return max;
}
} package main
import "strconv"
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @param k int整型
* @return int整型
*/
func maxValue( s string , k int ) int {
max:=s[:k]
for i:=1;i+k<=len(s);i++{
str:=s[i:i+k]
if str>max{
max=str
}
}
x,_:=strconv.Atoi(max)
return x
} # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param s string字符串 # @param k int整型 # @return int整型 # class Solution: def maxValue(self , s , k ): # write code here ans = -1 for i in range(len(s)-k+1): ans = max(ans,int(s[i:i+k])) return ans
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @param k int整型
* @return int整型
*
* C语言声明定义全局变量请加上static,防止重复定义
*/
int maxValue(char* s, int k) {
int i,len=strlen(s);
int max=0;
int index=0;
for(i=1;i<=len-k;i++){
if(s[i]>s[index]) index=i;
else if((s[i]==s[index])){
int j=i,temp=index;
while(j<i+k&&temp<index+k){
if(s[temp]>s[j]) break;
else if(s[j]>s[temp]){
index=i;
break;
}
else{
j++;
temp++;
}
}
}
else continue;
}
for(i=index;i<index+k;i++){
max=max*10+(s[i]-'0');
}
return max;
}