In this HackerEarth Digital Sequence problem solution, You are given an array A of length N. You need to find the maximum length of a subsequence of A which contains any one digit common in all the elements of that subsequence. You are not allowed to count leading zeroes.
HackerEarth Digital Sequence problem solution.
import java.io.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.FilterInputStream;
import java.io.BufferedInputStream;
import java.io.InputStream;
public class Solution {
public static void main(String[] args) {
new Thread(null, new Runnable() {
public void run() {
new Solution().solve();
}
}, "1", 1 << 26).start();
}
void solve() {
InputStream inputStream = System.in;
OutputStream outputStream = System.out;
ScanReader in = new ScanReader(inputStream);
PrintWriter out = new PrintWriter(outputStream);
DIGITIAL_SEQUENCE solver = new DIGITIAL_SEQUENCE();
solver.solve(1, in, out);
out.close();
}
static class DIGITIAL_SEQUENCE {
public void solve(int testNumber, ScanReader in, PrintWriter out) {
int n = in.scanInt();
int[] ans = new int[10];
for (int i = 0; i < n; i++) {
int temp = in.scanInt();
boolean[] check = new boolean[10];
while (temp > 0) {
check[(temp) % 10] = true;
temp /= 10;
}
for (int j = 0; j < 10; j++) ans[j] += (check[j] ? 1 : 0);
}
int max = 0;
for (int i = 0; i < 10; i++) max = Math.max(max, ans[i]);
out.println(max);
}
}
static class ScanReader {
private byte[] buf = new byte[4 * 1024];
private int index;
private BufferedInputStream in;
private int total;
public ScanReader(InputStream inputStream) {
in = new BufferedInputStream(inputStream);
}
private int scan() {
if (index >= total) {
index = 0;
try {
total = in.read(buf);
} catch (Exception e) {
e.printStackTrace();
}
if (total <= 0) return -1;
}
return buf[index++];
}
public int scanInt() {
int integer = 0;
int n = scan();
while (isWhiteSpace(n)) n = scan();
int neg = 1;
if (n == '-') {
neg = -1;
n = scan();
}
while (!isWhiteSpace(n)) {
if (n >= '0' && n <= '9') {
integer *= 10;
integer += n - '0';
n = scan();
}
}
return neg * integer;
}
private boolean isWhiteSpace(int n) {
if (n == ' ' || n == '\n' || n == '\r' || n == '\t' || n == -1) return true;
else return false;
}
}
}
0 Comments