Úsáidtear an t-algartam cuardaigh teaghrán chun tarluithe de phatrún ar leith(fotheaghrán) a aimsiú laistigh de théacs níos mó(teaghrán). Tá ról ríthábhachtach ag an algartam seo i bpróiseáil téacs, cuardach agus tascanna ionramhála.
Conas a oibríonn sé
- Tosaigh le téacs(teaghrán) agus patrún(fotheaghrán) le cuardach a dhéanamh air.
- Atriall tríd an téacs carachtar amháin ag an am.
- Maidir le gach carachtar sa téacs, déan é a chur i gcomparáid leis an gcéad charachtar den phatrún.
- Má tá meaitseáil ann, seiceáil an bhfuil na carachtair ina dhiaidh sin ag teacht leis an bpatrún freisin.
- Má tá an patrún comhoiriúnaithe go hiomlán, taifead suíomh tosaigh an chluiche.
- Lean ar aghaidh ag cuardach an phatrúin sa téacs.
Sampla
Smaoinigh ar théacs: "ababcababcabcabc" Agus patrún: "abc"
- Tosaigh ag suíomh 0. Cuir "a" i gcomparáid leis an gcéad charachtar "a" sa phatrún.
- Comhoiriúnacht aimsithe, bog go dtí na carachtair eile: "b" le "b", agus "a" le "c".
- Lean ar aghaidh ag meaitseáil: "b" le "a", "a" le "b", agus "b" le "c".
- Theip ar an gcluiche ag suíomh 2.
- Tosaigh arís ag suíomh 3. Déan comparáid idir "a" agus an chéad charachtar "a" sa phatrún.
- Meaitseáil rathúil: "a" le "a", "b" le "b", agus "c" le "c".
- Taifead seasamh 3.
Faightear an patrún "abc" ag suíomhanna 0, 6, agus 9.
Cód Samplach i C++
#include <iostream>
#include <string>
#include <vector>
std::vector<int> stringSearch(const std::string& text, const std::string& pattern) {
std::vector<int> positions;
for(int i = 0; i <= text.length()- pattern.length(); ++i) {
int j = 0;
while(j < pattern.length() && text[i + j] == pattern[j]) {
++j;
}
if(j == pattern.length()) {
positions.push_back(i);
}
}
return positions;
}
int main() {
std::string text = "ababcababcabcabc";
std::string pattern = "abc";
std::vector<int> result = stringSearch(text, pattern);
std::cout << "Pattern found at positions: ";
for(int pos: result) {
std::cout << pos << ";
}
std::cout << std::endl;
return 0;
}
Sa sampla seo, stringSearch
úsáidtear an fheidhm chun tarluithe den phatrún "abc" a fháil laistigh den téacs "ababcababcabcabc". Is é an toradh a bheidh air ná veicteoir ina mbeidh suíomhanna tosaigh na gcluichí.