----------------------------------------
Понимаю, что код over не оптимален, тем не менее не понимаю почему валидатор не прнимает, хотя вроде все работает верно
----------------------------------------
public class Solution {
public static void main(String[] args) throws IOException{
FileInputStream f = null;
int cc = 0;
byte[] b = new byte[1000];
f = new FileInputStream(args[0]);
while (f.available() > 0) {
cc = f.read(b);
}
int[] k = new int[cc]; //рабочий массив
byte[] c = new byte[cc]; //массив для вывода в консоль
int nn[] = new int[cc]; //массив уникальных симовлов в файле
int count[] = new int[cc]; //массив количества каждого уникального символа
for(int i = 0; i < cc; i++){
if (b[i] != 13 && b[i] != 10) {
k[i] = b[i];//копируем все символы в рабочий массив, кроме переноса каретки на новую строку
}
}
for(int i = 0; i < cc; i++){
for(int j = i + 1; j < cc; j++){
if (k[i] == k[j] && k[i] != -1 && k[j] != -1 && k[i] != 0 && k[j] != 0) {
k[i] = -1;//ищем повторяющиеся символы и заменяем их на -1
break;
}
}
}
int y = 0;
int new1 = 0;
for(int i = 0; i < cc; i++){
if (k[i] != -1 && k[i] != 0) {
nn[y] = k[i];//массив уникальных символов из файла
new1++;
y++;
}
}
int o = 0;
for(int i = 0; i < new1; i++){
for(int j = 0; j < cc; j++) {
if (nn[i] == b[j] && b[j] != 13 && b[j] != 10) {
count[i] = ++o;//количество каждого уникального символа
}
}
o=0;
}
int bb,mm;
for(int u = 0; u < new1; u++){
for(int l = u + 1; l < new1; l++){
if (nn[u] > nn[l]) {//сортировка
bb = nn[l];
mm = count[l];
nn[l] = nn[u];
count[l] = count[u];
nn[u] = bb;
count[u] = mm;
}
}
}
for(int p = 0; p < new1; p++){
c[p] = Byte.parseByte(Integer.toString(nn[p]));
System.out.println((char) c[p] + " " + count[p]);
}
f.close();
}
}package com.javarush.task.task18.task1821;
/*
Встречаемость символов
*/
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class Solution {
public static void main(String[] args) throws IOException{
FileInputStream f = null;
int cc = 0;
byte[] b = new byte[1000];
f = new FileInputStream(args[0]);
while (f.available() > 0) {
cc = f.read(b);
}
int[] k = new int[cc];
byte[] c = new byte[cc];
int nn[] = new int[cc];
int count[] = new int[cc];
for(int i = 0; i < cc; i++){
if (b[i] != 13 && b[i] != 10) {
k[i] = b[i];
}
}
for(int i = 0; i < cc; i++){
for(int j = i + 1; j < cc; j++){
if (k[i] == k[j] && k[i] != -1 && k[j] != -1 && k[i] != 0 && k[j] != 0) {
k[i] = -1;//ищем повторяющиеся символы и заменяем их на -1
break;
}
}
}
int y = 0;
int new1 = 0;
for(int i = 0;i < cc; i++){
if (k[i] != -1 && k[i] != 0) {
nn[y] = k[i];//массив уникальных символов из файла
new1++;
y++;
}
}
int o = 0;
for(int i = 0; i < new1; i++){
for(int j = 0; j < cc; j++) {
if (nn[i] == b[j] && b[j] != 13 && b[j] != 10) {
count[i] = ++o;//количество каждого символа
}
}
o=0;
}
int bb,mm;
for(int u = 0; u < new1; u++){
for(int l = u + 1; l < new1; l++){
if (nn[u] > nn[l]) {//сортировка
bb = nn[l];
mm = count[l];
nn[l] = nn[u];
count[l] = count[u];
nn[u] = bb;
count[u] = mm;
}
}
}
for(int p = 0; p < new1; p++){
c[p] = Byte.parseByte(Integer.toString(nn[p]));
System.out.println((char) c[p] + " " + count[p]);
}
f.close();
}
}