グループ単語checker-backjun(1316、文字列)


コンビネーションチェッカー


グループ単語checker-1316、文字列、銀色5

アルゴリズム[メソッド]


  • 26文字のチェック配列(boolean type)を使用するかどうかを宣言します.

  • prev変数を宣言して前の文字(int type)を保存

  • 文字列長のループでは、プリアンブル(prev)と現在の文字(now)が連続していることを確認します.
  • prev != now
    -現在の文字が(now)重複文字の場合falseを返します.
    -現在の文字が重複文字(now)でない場合、現在の文字の配列値をtrueに変換し、現在の文字(now)を前の文字(prev)
  • に置き換えます.

    ソース

    package $01_문자열;
    
    import java.util.Scanner;
    
    public class $01_그룹_단어_체커_1316_실버5 {
    
    	public static boolean solution(String s) {
    		boolean status = true;
    		
    		boolean[] alphabet = new boolean[26];
    		int prev = -1;
    		
    		for(int i = 0 ; i < s.length() ; i++) {
    			int now = s.charAt(i) - 'a';
    			
    			if(prev != now) {
    				if(alphabet[now]) {
    					status = false;
    					return status;
    				}else {
    					alphabet[now] = true;
    				} 
    			}
    			prev = now;
    		}
    		
    		
    		return status;
    	}
        
    	public static void main(String[] args) {
    		
    		Scanner sc = new Scanner(System.in);
    		
    		int N = sc.nextInt();
    		
    		int count = 0;
    		for(int i = 0 ; i < N ; i++) {
    			String s = sc.next();
    			if(solution(s)) {
    				System.out.println(s);
    				count++;
    			}
    		}
    		
    		System.out.println(count);
    		
    		sc.close();
    	}
    }
    

    結果



    関連知識