Given a positive integer number consisting only of digits 6 and 9.
Find the maximum number you can get by changing at most one digit (6 becomes 9, and 9 becomes 6).
Find the maximum number you can get by changing at most one digit (6 becomes 9, and 9 becomes 6).
Example 1:
Input: num = 9669
Output: 9969
Approach
Java
import java.util.ArrayList;import java.util.List;public class Maximum69 {public static void main(String[] args) {int num = 6969;System.out.println(maximum69Number(num));}// maximum 69 numberpublic static int maximum69Number(int num) {// convert digit to arrayList<Integer> digit = digit(num);int done = 0;int fnum = 0;// iterate digit to 0for (int i = digit.size() - 1; i >= 0; i--) {// if element is 6 then replace 9if (digit.get(i) != 9 && done == 0) {digit.remove(i);digit.add(i, 9);done++;}// calculate numberfnum = fnum * 10 + digit.get(i);}return fnum;}// number to digit arraypublic static List<Integer> digit(int num) {List<Integer> digit = new ArrayList<Integer>();while (num != 0) {digit.add(num % 10);num = num / 10;}return digit;}}
C++
#include <bits/stdc++.h>using namespace std;//function to find the maximum//69int maximum69Number (int num){string str="";while(num){int x=num%10;str+=to_string(x);num=num/10;}reverse(str.begin(),str.end());for(int i=0;i<str.size();i++)if(str[i]=='6'){str[i]='9';break;}stringstream f(str);int maximum=0;f>>maximum;return maximum;}int main(){int num=9669;int maximum=maximum69Number(num);cout<<maximum<<"\n";return 0;}
No comments:
Post a Comment