botón de estancia --- 12/03/2020

cuerdas 1071. GCD

  • algoritmo de Euclides: con una más grande dividida por el número más pequeño, entonces los aparece resto (la primera de residuos) retirar el divisor, a continuación, el aparece resto (el segundo residuo) retirar el primer residuo, y así sucesivamente, hasta el último hasta que el resto es cero. Si usted está buscando el máximo común divisor de dos números, los dos últimos números del divisor es el máximo común divisor.
class Solution {
    public String gcdOfStrings(String str1, String str2) {
        // 假设str1是N个x,str2是M个x,那么str1+str2肯定是等于str2+str1的。
        if (!(str1 + str2).equals(str2 + str1)) {
            return "";
        }
        // 辗转相除法求gcd。  substring() 方法返回字符串的子字符串
        return str1.substring(0, gcd(str1.length(), str2.length()));
    }

    private int gcd(int a, int b) {
        return b == 0? a: gcd(b, a % b);
    }
}
class Solution {
    public String gcdOfStrings(String str1, String str2) {
        if (!(str1 + str2).equals(str2 + str1)) {
            return "";
        }
        return gcd(str1,str2);
    }

    //更相减损术
    public String gcd (String s1,String s2){
        if (s1.equals(s2)){
            return s1;
        }
        if (s1.length()>s2.length()){
            s1 = s1.substring(s2.length(), s1.length());
            return gcd(s1,s2);
        }else {
            s2 = s2.substring(s1.length(),s2.length());
            return gcd(s1,s2);
        }
    }
}

1281. enteros diferencia entre el usuario y el producto

class Solution {
    public int subtractProductAndSum(int n) {
        int res1 = 1;
        int res2 = 0;
        while(n>0){
            res1 *= n%10;
            res2 += n%10;
            n = n/10;
        }
        return res1-res2;
    }
}

1295. estadístico número par de dígitos a digitales

class Solution {
    public int findNumbers(int[] nums) {
        int count=0;
        for(int i=0;i<nums.length;++i){
            if((nums[i]>=10&&nums[i]<100)||(nums[i]>=1000&&nums[i]<10000))
                count++;
        }
        return count;        
    }
}
class Solution {
    public int findNumbers(int[] nums) {
        int res=0;
        for(int i:nums){
            if(String.valueOf(i).length()%2==0){
                res++;
            }
        }
        return res;
    }
}
class Solution {
    public int findNumbers(int[] nums) {
        int count = 0;
        for (int i = 0; i < nums.length; i++) {
            int N = nums[i];
            //记录除10的次数
            int countTen = 0;
            while (N != 0) {
                N/=10;
                countTen++;
            }
            //如果除10的次数是偶数次,则该数为偶数位数
            if (countTen % 2 == 0) {
                count++;
            }
        }
        return count;
    }
}

Cuanto más se sabe, más usted no sabe.
Forma correcta sin necesidad de cirugía, los pacientes aún pueden buscar, no hay ninguna manera de la cirugía, poniendo fin a la cirugía.
Si usted tiene otras preguntas, mensaje de bienvenida, podemos discutir, aprender juntos y progresar juntos

Ha publicado 193 artículos originales · alabanza 116 won · vistas 10000 +

Supongo que te gusta

Origin blog.csdn.net/qq_40722827/article/details/104828671
Recomendado
Clasificación