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
 
    }
}

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