Как решить эту проблему со строками и ключами?
An Ethical Hacker has been tasked to find vulnerabilities in Transaction Operations of an Organization XYZ. He has been able to find a relation between the Transaction ID and the Key generated by the System. Write a program that generates Key from the Transaction ID. Transaction ID S is a String consisting of only lower case alphabetic characters, i.e. S[i] ∈ [a, z]. K is said to be a possible key of S, if there exist at least one-character C ∈ [a, z] in each and every substring of S of length K. Key of ID is the minimum of such possible Ks. Input First line contains Transaction ID S (1≤ length(S)≤ 100000) Output Key of Transaction ID i.e. Minimum of possible keys Ks Like if inputs are:- zbcde /*here c is common between substrings Having 3 max length i.e zbc cde bbbbb /* in this only b is there so length Becomes 1 i.e b zbzczbz /*here z is common in maximum length 2 of given string i.e zb bz zc cz zb bz Then output will be like:- 3 1 2
Что я уже пробовал:
<pre>import java.util.Scanner; public class lab3hw { public static boolean aresame(int[] array) { boolean fe = array[0] == 0; for(int i = 1; i < array.length; i++) { if(fe) if(array[i] != 0) return false; else if(!(array[0]==array[i])) return false; } return true; } public static boolean samechar(String s) { int n = s.length(); boolean boo=false; for (int i = 1; i < n; i++) if (s.substring(i,i+1).equals(s.substring(0,1))) { boo=false; }else { boo=true; } return boo; } public static int conditions(String str) { int ci, i, j, k, l=0; int result=0; char c, ch; i=str.length(); if(samechar(str)==false) { result=1; }else { for(c='A'; c<='z'; c++) { k=0; for(j=0; j<i; j++) { ch = str.charAt(j); if(ch == c) { k++; } } if(k>0) { int[]n=new int[50]; for(int m=0;m<i;m++){ n[m]=k; } if(aresame(n)==true) { if((str.length())%2==0) { result= str.length()/2;} else { result=(str.length()+1)/2; } }else if(aresame(n)==false) { } } } } return result; } public static void main(String[] args) { // TODO Auto-generated method stub Scanner a=new Scanner(System.in); String b=a.next(); System.out.println(conditions(b)); } }
Пожалуйста скажите мне как я могу это сделать
OriginalGriff
Это не очень хороший вопрос - мы не можем понять из этого малого, что вы пытаетесь сделать.
Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли - мы получаем только то, что вы печатаете для работы. И в этом нет никакого смысла!
Пожалуйста, еще раз посмотрите на свой домашний вопрос и постарайтесь понять, что именно он задает: мы не получаем никакого контекста, кроме того, что вы печатаете.
Используйте виджет "улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.
Gamomusic
теперь я предоставил лучшую информацию