小编Sam*_*hah的帖子

@HackerRank:FlippingBits。输出错误

这件事确实让我很为难。所以最终我决定向你们寻求帮助。也许,你可以回顾一下并告诉我哪里出错了。

@ https://www.hackerrank.com/challenges/flipping-bits

基本上:

输入 = 数字

  1. 将其转换为二进制字符串。
  2. 翻转位(设置全 0 并重置全 1)
  3. 输出你这样做得到的数字。

我现在已经硬编码了一个数字,正如问题中提到的那样(= 2147483647)

问题是:它给我的输出是:

0
Run Code Online (Sandbox Code Playgroud)

代码:

public class FlippingBits {

private static String flipBits(String binaryOrig){
    String flippedString = "";
    for(int i = 0; i<binaryOrig.length(); i++){
        if(binaryOrig.charAt(i) == '1')
            flippedString += '0';
        else 
            flippedString += '1';
    }
    return flippedString;
}

private static long getNum(String flippedString){
    long new_number = 0;
    for(int i = 0; i < flippedString.length(); i++){
        new_number = (2*new_number) + (flippedString.charAt(i) - '0');
    }
    return new_number;
}

public …
Run Code Online (Sandbox Code Playgroud)

java

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

WritableRaster 方法 setPixels() 需要什么类型的数组?

我不明白 Java 的 WritableRaster 类是如何工作的。我尝试查看文档,但不明白它如何从像素数组中获取值。另外,我不确定像素阵列由什么组成。

这里我解释一下。

我想要做的是:Shamir 在图像上的秘密分享。为此,我需要在 BuferedImage 图像中获取图像。我拍了一张秘密照片。通过在图像的每个像素上运行“函数”来创建共享。(基本上通过某种方式改变像素值)

片段:

int w = image.getWidth();
int h = image.getHeight();
for (int i = 0; i < h; i++) 
    {
    for (int j = 0; j < w; j++) 
        {
        int pixel = image.getRGB(j, i);

        int red = (pixel >> 16) & 0xFF;
        int green = (pixel >> 8) & 0xFF;
        int blue = (pixel) & 0xFF;

        pixels[j][i] = share1(red, green, blue);
Run Code Online (Sandbox Code Playgroud)

// 现在采用那些 rgb 值。我使用一些函数更改它们并返回一个 int 值。像这样的东西:

public int share1 …
Run Code Online (Sandbox Code Playgroud)

java shared-secret javax.imageio

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

标签 统计

java ×2

javax.imageio ×1

shared-secret ×1