小编Ano*_*rma的帖子

动态规划:将一个字符串转换为另一个字符串

我们有两个字符串 a 和 b。我们需要将字符串 a 转换为 b。

变换规则

  1. 在某个索引 i 处将 a 的零个或多个小写字母大写(即,将它们设为大写)。
  2. 删除 a 中所有剩余的小写字母。

例如。

a = daBcd 
b = ABC
Run Code Online (Sandbox Code Playgroud)

a将and首字母大写,并从 中c删除。这样我们就可以转变成. (我在HackerRank上发现了这个问题)dstring aab

所以我写了如下java代码:

static boolean abbreviation(String a, String b, int i, int j, Map<String, Boolean> memo) {
        if(j==b.length()){
            if(i==a.length())
                return true;

            return !a.substring(i, a.length()).matches("\\D*[A-Z]+\\D*");
        }

        if(i==a.length())
            return false;



        String key = i+"-"+j;

        if(memo.containsKey(key))
            return memo.get(key);


        if(a.substring(i).equalsIgnoreCase(b.substring(j))){
            memo.put(key, true);
            return true;
        }


        if(Character.isUpperCase(a.charAt(i))){
            if(a.charAt(i)==b.charAt(j)){
                memo.put(key, abbreviation(a, b, i+1, j+1, …
Run Code Online (Sandbox Code Playgroud)

algorithm dynamic-programming

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

多个线程的单个 HttpClientContext

我正在使用 apache HttpClient 4.5 在 java 中处理 http 请求。

根据文档 HttpClient 是线程安全的,因此我们可以对所有线程使用相同的 HttpClient 实例,但 HttpContext 应该由每个执行线程维护。

对于身份验证(NTLM 身份验证),我们需要将 CredentialsProvider 设置为上下文,这将在服务器上进行身份验证。

要求

所有请求都将使用相同的身份验证详细信息访问同一服务器。我只想在应用程序初始化或第一次请求服务器时进行一次身份验证,所有其他请求都应在同一会话中提供服务,但可以来自不同的线程。

我可以使用相同的上下文,因为使用相同的身份验证详细信息访问同一台服务器,还是有另一种方法来实现它?

apache-httpclient-4.x

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

AWS:CDK中的信任关系

我想使用 CDK 代码创建 IAM 角色的以下信任关系

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::<ABC>:root"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "sts:ExternalId": "<ID>"
        }
      }
    },
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::<XYZ>:root"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

上述策略是使用 AWS 控制台直接创建的,但是当我通过 CDK 代码创建它时,我得到类似以下内容的信息:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::<XYZ>:root",
          "arn:aws:iam::<ABC>:root"
        ]
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "sts:ExternalId": "<ID>"
        }
      }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我使用以下 CDK 代码来实现此目的:

const …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-iam aws-cdk

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