gpt4 book ai didi

java - 可以添加到数组列表的最大元素数

转载 作者:太空宇宙 更新时间:2023-11-04 13:48:11 25 4
gpt4 key购买 nike

问题:-

给你一个包含 N 个字符的字符串 S。已知该字符串由小写拉丁字母组成。该字符串是随机生成的。这意味着每个符号都是从集合 {'a', 'b', ..., 'z'} 中随机且独立于其他符号选择的。所有字母出现的概率均等。

您收到了关于此字符串的 Q 次查询。每个查询的形式为 P C,其中 P 是 1 到 N(包含两者)之间的整数,C 是集合 {'a', 'b', ..., 'z'} 中的字符。 P 和 C 都是随机选择的,并且独立于其他查询。

当您有 P C 形式的查询时,您必须将 S 的第 P 个符号更改为 C。每次更改后,我们要求您输出 S 的不同非空子字符串的数量。

输入格式输入的第一行由两个单空格分隔的整数 N 和 Q 组成 - 分别是字符串 S 的长度和查询的数量。

第二行包含字符串 S 本身。

以下 Q 行描述了 P C 形式的查询,其中 P 和 C 也用单个空格分隔。

约束

4 ≤ N ≤ 750004≤Q≤75000

输出格式输出 Q 线。在输出的第 i 行输出第 i 个查询后 S 的不同子串的数量。

示例输入

4 4 
aaab
1 a
2 b
3 c
4 d

示例输出:-

7
7
9
10

说明:-

将第一个索引处的字符替换为 a 后,我们仍然拥有原始字符串 aaab。 aaab 的非空子串总数为

a b aa ab aaa aab aaab因此是 7。

用 b 替换第二个索引处的字符后,我们得到了字符串 abab。 abab的非空子串总数为

a b ab ba aba bab abab因此是 7。

将第三个索引处的字符替换为 c 后,我们得到字符串 abcb。 abcb 的非空子串总数为

a b c ab bc cb abc bcb abcb因此是 9。

将第 4 个索引处的字符替换为 d 后,我们得到字符串 abcd。 abcd 的非空子串总数为

a b c d ab bc cd abc bcd abcd因此是 10。

我的代码:-

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Solution
{
public static long count(String string)
{
String sub;
int i,c,length;
ArrayList<String>al=new ArrayList<String>();
length = string.length();

for(c=0;c<length;c++)
{
for(i=1;i<=length-c;i++)
{
sub = string.substring(c,c+i);
al.add(sub);
}
}

HashSet hs = new HashSet();
hs.addAll(al);
al.clear();
al.addAll(hs);

return al.size();
}
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int q = sc.nextInt();

String s = sc.next();
StringBuilder m = new StringBuilder(s);
while((q--)>0)
{
int p = sc.nextInt() - 1;
char c = sc.next().toCharArray()[0];
m.setCharAt(p,c);
String z = m.toString();
long x = count(z);
System.out.println(x);
}
}
}

当输入非常大时,例如,如果答案大于 2147483647(最大 int 值),例如 2812324482 ....我得到错误的输出

我们都知道 size() 方法返回 int 所以它的最大容量是 2147483647 ,但我的答案预计会比无法容纳的更多

任何人都可以给我一个存储更多值的想法,或者任何其他替代手动或预定义方法,该方法返回最大容量超过 2147483647 的数组列表的大小?

最佳答案

ArrayList 包含的最大项目数这取决于实现。自 List<Integer>List<Person> 不同,所以这两个中的最大项数 List应该是不同的。

关于java - 可以添加到数组列表的最大元素数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30607464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com