693 auto records = map<string, trie_node *>();
694 for(
int i = 0; i < n; i++) {
697 if(!records.contains(name)) {
699 records[name] =
new trie_node(-1,
nullptr);
703 for(
int j = 0; j < n2; j++) {
706 string phone_number_trim_left;
707 for(
int k = 0; k < phone_number.length(); k++) {
708 if(phone_number[k] !=
'0') {
709 phone_number_trim_left = phone_number.substr(k);
713 reverse(phone_number_trim_left.begin(), phone_number_trim_left.end());
714 records[name]->insert(phone_number_trim_left);
717 cout << records.size();
718 for(
auto it: records) {
719 cout << it.first <<
" ";
720 cout << it.second->count() <<
" ";
721 it.second->display();
void reverse(struct ListNode *head)