Problem:
Score : 200 points

Problem Statement

Given are strings S and T. Consider changing S to T by repeating the operation below. Find the minimum number of operations required to do so.

Operation: Choose one character of S and replace it with a different character.

Constraints

S and T have lengths between 1 and 2\times 10^5 (inclusive).

S and T consists of lowercase English letters.

S and T have equal lengths.

Input

Input is given from Standard Input in the following format:

S
T

Output

Print the answer.

Sample Input 1

cupofcoffee
cupofhottea

Sample Output 1

4

We can achieve the objective in four operations, such as the following:

First, replace the sixth character c with h.

Second, replace the eighth character f with t.

Third, replace the ninth character f with t.

Fourth, replace the eleventh character e with a.

Sample Input 2

abcde
bcdea

Sample Output 2

5

Sample Input 3

apple
apple

Sample Output 3

0

No operations may be needed to achieve the objective.

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

use std::io::{self};

fn main() {
    let mut buffer1 = String::new();
    let mut s: String = match io::stdin().read_line(&mut buffer1) {
        Ok(_) => {
            buffer1.trim().parse::<String>().ok().expect("woops")
        },
        Err(_) => panic!()
    };
    let mut buffer2 = String::new();
    let mut t: String = match io::stdin().read_line(&mut buffer2) {
        Ok(_) => {
            buffer2.trim().parse::<String>().ok().expect("woops")
        },
        Err(_) => panic!()
    };

    let ans = exec_calc(&mut s, &mut t);

    println!("{:?}", ans);
    return;
}

fn exec_calc(s: &mut str, t: &mut str) -> u32 {
    let s_vec = s.split("").collect::<Vec<&str>>();
    let t_vec = t.split("").collect::<Vec<&str>>();
    let mut count : u32 = 0;
    for ind in 0 .. s_vec.len() {
        if s_vec[ind] != t_vec[ind] {
            count += 1
        }
    }

    return count
}