Problem:
Score : 200 points

Problem Statement

You are given a string S consisting of lowercase English letters. Determine whether all the characters in S are different.

Constraints

2 ≤ |S| ≤ 26, where |S| denotes the length of S.

S consists of lowercase English letters.

Input

Input is given from Standard Input in the following format:

S

Output

If all the characters in S are different, print yes (case-sensitive); otherwise, print no.

Sample Input 1

uncopyrightable

Sample Output 1

yes

Sample Input 2

different

Sample Output 2

no

Sample Input 3

no

Sample Output 3

yes

Solution in Rust (1.15.1) (judge verdict: Accepted)

use std::fmt::Debug;
use std::io::{self, Read};
use std::str;
use std::str::FromStr;

fn main() {
    let mut sc = StdinScanner::new();
    if solve(sc.next()) {
        println!("yes");
    } else {
        println!("no");
    }
}


fn solve(s: String) -> bool {
    let mut counter = [false; 256];
    for &c in s.as_bytes() {
        if counter[c as usize] {
            return false;
        } else {
            counter[c as usize] = true;
        }
    }
    true
}


struct StdinScanner {
    buf: Vec<u8>,
}

impl StdinScanner {
    fn new() -> Self {
        StdinScanner { buf: Vec::with_capacity(256) }
    }

    fn next<T: FromStr>(&mut self) -> T
        where <T as FromStr>::Err: Debug
    {
        self.buf.clear();
        let stdin = io::stdin();
        let mut stdin = stdin.lock().bytes();
        let mut c = stdin.next().unwrap().unwrap();
        while c == ' ' as u8 || c == '\n' as u8 {
            c = stdin.next().unwrap().unwrap();
        }
        while !(c == ' ' as u8 || c == '\n' as u8) {
            self.buf.push(c);
            c = stdin.next().unwrap().unwrap();
        }
        str::from_utf8(&self.buf).unwrap().parse().unwrap()
    }
}