vivo笔试真题编程题

数位之积

https://www.nowcoder.com/questionTerminal/f9b86bcd95a643138f9593966a5495b8

现给定任意正整数 n,请寻找并输出最小的正整数 m(m>9),使得 m 的各位(个位、十位、百位 … …)之乘积等于n,若不存在则输出 -1。
示例1
输入

36

输出

49

示例2
输入

100

输出

455

解题思路,如果存在这样的整数 那么一定是每一位都是[2-9],同时是一种贪心的思想,数值越大的一定放在越小位

public class Solution {
    /**
     * 输入一个整形数值,返回一个整形值
     *
     * @param n int整型 n>9
     * @return int整型
     */
    public int solution(int n) {
        // write code here
        StringBuilder sb = new StringBuilder();
         
         while (n!=1) {
            int i=9;			//为什么循环从9开始不从2开始就是贪心的思想
            for (; i > 1; i--){			//在9-2试探
                if(n%i==0){
                    sb.append(i);
                    n/=i;
                    break;
                }
            }
            if(i==1)		//代表不存在这样的数
                return -1;
             
        }
        return Integer.parseInt(sb.reverse().toString());
    }
}

拆礼盒

链接:https://www.nowcoder.com/questionTerminal/916c1446d019459f94743443f71b3e70
来源:牛客网

小v所在的公司即将举行年会,年会方案设计过程中必不可少的一项就是抽奖活动。小v在本次活动中被委以重任,负责抽奖活动的策划;为了让中奖的礼物更加精美且富有神秘感,打算采用礼品盒来包装奖品,此时小v发挥了自己的创意想捉弄一下获奖的同事,便采取了多重包装来包装奖品。

现给出一个字符串,并假定用一对圆括号( )表示一个礼品盒,0表示奖品,你能据此帮获奖者算出最少要拆多少个礼品盒才能拿到奖品吗?

示例1
输入

(()(()((()(0)))))

输出

5
import java.io.*;
 
/**
 * Welcome to vivo !
 */
 
public class Main {
 
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String inputStr = br.readLine();
        int output = solution(inputStr );
        System.out.println(output);
    }
 
    private static int solution(String str) {
        char[] charArray=str.toCharArray();
        int ret=0;
        for(int i=0;i<charArray.length;i++){
            if(charArray[i]=='0')
                break;
            else{
                ret++;
				//思路,在遇到0之前 凡是有)这个括号的 都要减去()两个字符
                if(charArray[i]==')'){
                    ret-=2;
                }
            }
        }
        return ret;
        // TODO Write your code here
 
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章