Maxim_Leo

Untitled

May 5th, 2022
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.03 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <list>
  4. #include <vector>
  5. #include <iterator>
  6. using namespace std;
  7.  
  8. vector< list<string>*> hash_table;
  9.  
  10. void hash_(string word) {
  11. int sum = 0;
  12. int num = 0;
  13. hash_table.resize(10);
  14. char numbers1[] = { '0','А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я' };
  15. char numbers2[] = { '0','а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я' };
  16.  
  17. for (int k = 0; k < word.size(); k++) {
  18. for (int m = 0; m < sizeof(numbers1); m++) {
  19. if (word[k] == numbers1[m]) {
  20. sum += m;
  21. num++;
  22. }
  23. }
  24. for (int t = 0; t < sizeof(numbers2); t++) {
  25. if (word[k] == numbers2[t]) {
  26. sum += t;
  27. num++;
  28. }
  29. }
  30.  
  31. }
  32. sum = sum % 10;
  33. cout << "Сумма:" <<sum<< endl;
  34. list<string> list1;
  35. list1.push_front(word);
  36. list<string>* ptr = &list1;
  37. hash_table[sum] = ptr;
  38. cout << *hash_table[sum]->begin();
  39. cout << "Слово " << num << " : " << sum << endl;
  40. sum = 0;
  41. }
  42. int getHash(string word) {
  43. int sum = 0;
  44. int num = 0;
  45. char numbers1[] = { '0','А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я' };
  46. char numbers2[] = { '0','а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я' };
  47.  
  48. for (int k = 0; k < word.size(); k++) {
  49. for (int m = 0; m < sizeof(numbers1); m++) {
  50. if (word[k] == numbers1[m]) {
  51. sum += m;
  52. num++;
  53. }
  54. }
  55. for (int t = 0; t < sizeof(numbers2); t++) {
  56. if (word[k] == numbers2[t]) {
  57. sum += t;
  58. num++;
  59. }
  60. }
  61.  
  62. }
  63. sum = sum % 10;
  64. return sum;
  65. }
  66.  
  67. auto string_find(string word) {
  68. int num = getHash(word);
  69. cout<< *hash_table[num]->begin();
  70. return 0;
  71. }
  72. int main()
  73. {
  74. setlocale(LC_ALL, "Russian");
  75. cout << "Задание 1: " << endl;
  76. vector<string> words = { "Ноутбук","Компьютер","Телефон","Планшет","Приставка","Умные часы","Наушники" };
  77. //hash1(words, 7, listwords);
  78. for (int i = 0; i < 7; i++) {
  79. hash_(words[i]);
  80. }
  81.  
  82. string_find(words[0]);
  83. cout << endl << "Задание 2: " << endl;
  84.  
  85. return 0;
  86. }
  87.  
  88.  
  89.  
Advertisement
Add Comment
Please, Sign In to add comment