C как подсчитать количество уникальных городов в текстовом файле

Как подсчитать общее количество уникальных городов?

For example my text file has  
New York  $255
New Jersey  $19.90
Farmvill  $300
Texas  $400
New York $17.90

Я пробовал читать файл построчно и подсчитывать количество строк, но это дало мне 5 городов, когда есть только 4 уникальных города. Как мне решить эту проблему

Использовать алгоритм для поиска уникальных значений?

Eugene Sh. 02.05.2018 16:52

Есть много способов получить уникальные значения из коллекции, и все они легко доступны для поиска в вашей любимой поисковой системе.

Some programmer dude 02.05.2018 16:53

Прочтите о хеш-таблица, чтобы почерпнуть вдохновение. Но мы не будем делать твою домашнюю работу. Ваш вопрос: не по теме

Basile Starynkevitch 02.05.2018 16:54

@BasileStarynkevitch Hashtable звучит как излишество :)

Eugene Sh. 02.05.2018 16:54

Вам также нужно будет сохранить в памяти все города, с которыми вы столкнетесь, и проверить, есть ли город уже в списке, прежде чем добавлять новый. Вы можете создать счетчик для каждого элемента в списке и увеличивать его каждый раз, когда вы найдете подходящий город.

dernst 02.05.2018 16:56

Что ж, я думаю, что ваш квест слишком широк для ТАК, как сейчас. Чтобы улучшить его, вы можете опубликовать код, который у вас есть. Может быть, тогда это будет вопрос, на который можно будет ответить в рамках SO

4386427 02.05.2018 17:28
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
6
52
2

Ответы 2

Вот что вы хотите сделать:

  1. Прочтите файл построчно в массив (статический или динамически распределяемый, зависит от того, знаете ли вы количество строк во время компиляции)
  2. Удалите содержимое каждой строки между последним пробелом и символом '\ n'
  3. В конце концов очистите свой текст (введите все в нижний регистр и т. д.)
  4. Сделайте содержимое вашего массива уникальным (вам придется подумать или погуглить, но не волнуйтесь, это не так уж сложно)
  5. Подсчитайте количество элементов в вашем массиве

удачи ;-)

Что такое контейнер?

Paul Ogilvie 02.05.2018 16:57

Ну, это может быть вектор STL, список и т.д ... больше чтения

Magix 02.05.2018 16:58

Прочтите первый город. Поместите его в первую запись массива.

Для каждого следующего прочитанного города проверяйте каждую запись массива, если она такая же.

Если нет, добавьте его в массив.

Количество используемых записей в массиве - это количество уникальных городов.

Как правило, сортировка и обход дают лучшую временную сложность.

Eugene Sh. 02.05.2018 17:00

Хорошо, спасибо за помощь, я просто знаю, как это сделать

GhostNANI 02.05.2018 17:01

Другие вопросы по теме