Hinzufügen versuche ich Nummer Vektor Und bekommenNicht übereinstimmTypen, wenn eine Zahl zu einem Vektorelement
let n = s.len();
let mut z: Vec<i32> = vec![0; n];
println!("{:?}", z);
for i in 1..n {
while (i + z[i] < n) && (s[z[i]] == s[i + z[i]]) {
z[i] = z[i] + 1;
}
}
Element hinzufügen
ZFunction.rs:13:14: 13:18 error: mismatched types: expected
usize
, foundi32
[E0308] ZFunction.rs:13 while (i + z[i] < n) && (s[z[i]] == s[i + z[i]]) {
Indizes sind 'usize', so dass Sie wahrscheinlich wollen' Z' sein 'Vec'. Was versuchst du auch mit dieser Bedingung (i + z [i]) zu machen? Es wird eine ganze Zahl anstelle eines booleschen Wertes erzeugt. –
jkiiski
@jkiiski edit it –
@StepanVanzuriak Sie haben die letzte Hälfte von jkiiskis Kommentar bearbeitet. Was ist mit dem ehemaligen? Wenn Sie Ihren Vektor so ändern, dass er vom Typ "usize" ist, wird Ihr Problem vollständig gelöst. –