• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Count unique substrings in a string

 
Ranch Hand
Posts: 87
  • Number of slices to send:
    Optional 'thank-you' note:
Problem link: Distint Substrings

I tried solving using prefix function based on Prefix function - KMP

but the solution described is O(n^2). And I want to solve it in O(n)


 
Marshal
Posts: 79392
377
  • Number of slices to send:
    Optional 'thank-you' note:
Why are you using StringTokenizer, and InputStreamReader, which are regarded as legacy code?

I think you may get more attention if I add you to one of our other fora.
 
Bhaskar Bantupalli
Ranch Hand
Posts: 87
  • Number of slices to send:
    Optional 'thank-you' note:

Why are you using StringTokenizer, and InputStreamReader, which are regarded as legacy code?


I have been using a template for online problem solving. I haven't changed it in years. Which API do you recommend that works for java 8 and 8+ alike

I think you may get more attention if I add you to one of our other fora.

Please add me. Can you say what the other forum is?

 
Campbell Ritchie
Marshal
Posts: 79392
377
  • Number of slices to send:
    Optional 'thank-you' note:
Can you envisage an algorithm running in linear time?

Bhaskar Bantupalli wrote:. . . . Which API do you recommend that works for java 8 and 8+ alike

I would use a Scanner to read System.in. It does its own tokenising which makes it unnecessary to use the tokeniser. It also provides methods like nextInt() which make it unnecessary to use Integer.parseInt() or similar.
For other input, use a Path object, as described in the Java™ Tutorials.

. . . Can you say what the other forum is?

Java in General.
 
Bartender
Posts: 5469
212
  • Number of slices to send:
    Optional 'thank-you' note:
@ Bhaskar,

have you read or heard somewhere that an O(N) solution is possible? The ones I found on the internet are all O(N^2).
 
Bhaskar Bantupalli
Ranch Hand
Posts: 87
  • Number of slices to send:
    Optional 'thank-you' note:

have you read or heard somewhere that an O(N) solution is possible?

- yes
Based on the time limits and input limits on the problem, the problem if solved cannot be O(n^2). and based on below solutions which I didn't understand much, I thought it is O(n)
https://github.com/Jonathan-Uy/CSES-Solutions/blob/main/String%20Algorithms/Distinct%20Substrings.cpp
https://codeforces.com/blog/entry/95004 - 12th solution and code

 
Master Rancher
Posts: 4905
74
  • Number of slices to send:
    Optional 'thank-you' note:
Yes, it looks like there is an O(N) solution to this problem using Suffix Automaton.  I'm not sure if there are any other algorithms that solve the problem as efficiently.
 
Piet Souris
Bartender
Posts: 5469
212
  • Number of slices to send:
    Optional 'thank-you' note:
Now, that is a great site! Bookmarked it.
 
Mike Simmons
Master Rancher
Posts: 4905
74
  • Number of slices to send:
    Optional 'thank-you' note:
Agreed - I hadn't seen it before, but found it in Bhaskar's first post above.  When another post mentioned suffix automaton, I searched in cp-algorithms.com because that was the resource Bhaskar was using... and there it was.
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
reply
    Bookmark Topic Watch Topic
  • New Topic
vceplus-200-125    | boson-200-125    | training-cissp    | actualtests-cissp    | techexams-cissp    | gratisexams-300-075    | pearsonitcertification-210-260    | examsboost-210-260    | examsforall-210-260    | dumps4free-210-260    | reddit-210-260    | cisexams-352-001    | itexamfox-352-001    | passguaranteed-352-001    | passeasily-352-001    | freeccnastudyguide-200-120    | gocertify-200-120    | passcerty-200-120    | certifyguide-70-980    | dumpscollection-70-980    | examcollection-70-534    | cbtnuggets-210-065    | examfiles-400-051    | passitdump-400-051    | pearsonitcertification-70-462    | anderseide-70-347    | thomas-70-533    | research-1V0-605    | topix-102-400    | certdepot-EX200    | pearsonit-640-916    | itproguru-70-533    | reddit-100-105    | channel9-70-346    | anderseide-70-346    | theiia-IIA-CIA-PART3    | certificationHP-hp0-s41    | pearsonitcertification-640-916    | anderMicrosoft-70-534    | cathMicrosoft-70-462    | examcollection-cca-500    | techexams-gcih    | mslearn-70-346    | measureup-70-486    | pass4sure-hp0-s41    | iiba-640-916    | itsecurity-sscp    | cbtnuggets-300-320    | blogged-70-486    | pass4sure-IIA-CIA-PART1    | cbtnuggets-100-101    | developerhandbook-70-486    | lpicisco-101    | mylearn-1V0-605    | tomsitpro-cism    | gnosis-101    | channel9Mic-70-534    | ipass-IIA-CIA-PART1    | forcerts-70-417    | tests-sy0-401    | ipasstheciaexam-IIA-CIA-PART3    | mostcisco-300-135    | buildazure-70-533    | cloudera-cca-500    | pdf4cert-2v0-621    | f5cisco-101    | gocertify-1z0-062    | quora-640-916    | micrcosoft-70-480    | brain2pass-70-417    | examcompass-sy0-401    | global-EX200    | iassc-ICGB    | vceplus-300-115    | quizlet-810-403    | cbtnuggets-70-697    | educationOracle-1Z0-434    | channel9-70-534    | officialcerts-400-051    | examsboost-IIA-CIA-PART1    | networktut-300-135    | teststarter-300-206    | pluralsight-70-486    | coding-70-486    | freeccna-100-101    | digitaltut-300-101    | iiba-CBAP    | virtuallymikebrown-640-916    | isaca-cism    | whizlabs-pmp    | techexams-70-980    | ciscopress-300-115    | techtarget-cism    | pearsonitcertification-300-070    | testking-2v0-621    | isacaNew-cism    | simplilearn-pmi-rmp    | simplilearn-pmp    | educationOracle-1z0-809    | education-1z0-809    | teachertube-1Z0-434    | villanovau-CBAP    | quora-300-206    | certifyguide-300-208    | cbtnuggets-100-105    | flydumps-70-417    | gratisexams-1V0-605    | ituonline-1z0-062    | techexams-cas-002    | simplilearn-70-534    | pluralsight-70-697    | theiia-IIA-CIA-PART1    | itexamtips-400-051    | pearsonitcertification-EX200    | pluralsight-70-480    | learn-hp0-s42    | giac-gpen    | mindhub-102-400    | coursesmsu-CBAP    | examsforall-2v0-621    | developerhandbook-70-487    | root-EX200    | coderanch-1z0-809    | getfreedumps-1z0-062    | comptia-cas-002    | quora-1z0-809    | boson-300-135    | killtest-2v0-621    | learncia-IIA-CIA-PART3    | computer-gcih    | universitycloudera-cca-500    | itexamrun-70-410    | certificationHPv2-hp0-s41    | certskills-100-105    | skipitnow-70-417    | gocertify-sy0-401    | prep4sure-70-417    | simplilearn-cisa    |
http://www.pmsas.pr.gov.br/wp-content/    | http://www.pmsas.pr.gov.br/wp-content/    |