小编doc*_*ore的帖子

旋转后按字典顺序排列的最小字符串

我试图在spoj中解决这个问题

我需要找到给定字符串的旋转次数,这将使其在所有旋转中按字典顺序排列最小.

例如:

原版的: ama

第一轮: maa

第二次旋转:aam这是按字典顺序排列的最小旋转,所以答案是2.

这是我的代码:

string s,tmp;
    char ss[100002];
    scanf("%s",ss);
    s=ss;
    tmp=s;
    int i,len=s.size(),ans=0,t=0;
    for(i=0;i<len;i++)
    {
        string x=s.substr(i,len-i)+s.substr(0,i);
        if(x<tmp)
        {
            tmp=x;
            t=ans;
        }
        ans++;
    }

    cout<<t<<endl;
Run Code Online (Sandbox Code Playgroud)

我正在为此解决方案获得"超出时间限制".我不明白可以进行哪些优化.如何提高解决方案的速度?

c++ string algorithm lexicographic

9
推荐指数
1
解决办法
3074
查看次数

如何授予存储桶拥有者完全控制权,以将文件从一个帐户的redshift卸载到另一个帐户的s3存储桶?

我在AWS帐户“ A”中有一个redshift集群,在帐户“ B”中有一个S3存储桶。我需要将数据从A中的redshift帐户卸载到B中的S3存储桶。

我已经提供了必要的存储区策略和角色策略以卸载数据。数据也已成功卸载。现在的问题是,从此卸载创建的文件的所有者是帐户A,并且该文件需要由用户B使用。在尝试访问该对象时,我被拒绝访问。我该如何解决?

PS:Redshift IAM策略已授予ListBucket和GetObject权限。

amazon-s3 amazon-web-services amazon-iam amazon-redshift

5
推荐指数
1
解决办法
989
查看次数

使用给定的随机数生成函数查找随机数生成器

这是一个面试问题:

给定在[1,5]中生成随机数的函数,我们需要使用此函数生成范围[1,9]中的随机数.我考虑了很多,但我无法写出一个满足ramdomness的等式.人们请回答.这可能在将来的某些采访中有所帮助.

random algorithm number-theory

4
推荐指数
1
解决办法
5847
查看次数

在 Jersey 中将 int 数组作为 @QueryParam 发送

我正在尝试编写一个 GET 方法并将 int 数组作为 QueryParam 发送给它。这就是我正在尝试做的事情:

@GET
@Path("/test")
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Response test(@Context HttpServletRequest request,
        @QueryParam("list") final int list[])
{
    System.out.println(list.length);
    return Response.ok().build();
}
Run Code Online (Sandbox Code Playgroud)

这会导致 500 内部服务器错误。当我尝试使用整数列表时,它工作得很好。Jersey 不支持数组作为参数还是我做错了什么?

java jersey

4
推荐指数
1
解决办法
5516
查看次数

程序找到2个大号的产品(每个10000个数字)

我需要一个有效的算法来计算乘以2个大数的结果(每个最多10000个数字).我已经编写了一个代码但它在判断时超出了时间限制.我使用字符串扫描了数字,然后使用基本的乘法方法,将结果存储在整数数组中:

#include <stdio.h>

int main() {
    int n, i, j, k, c, m, r, x, t, h, y;

    scanf("%d", &n);  // no of test cases
    for (i = 0; i < n; i++) {
        char A[10002], B[10002];
        int c1 = 0, c2 = 0, l;

        scanf("%s %s", A, B); //scanning the no.s
        for (j = 0; A[j] != '\0'; j++)
            c1++;
        for (j = 0; B[j] != '\0'; j++)
            c2++;
        l = 29999;

        int a[30002] = { 0 };
        for …
Run Code Online (Sandbox Code Playgroud)

c algorithm

1
推荐指数
1
解决办法
2800
查看次数