42 Commits

Author SHA1 Message Date
a81fb32e6c style: enable TypeName (#5214)
* style: enable `TypeName` in checkstyle

* style: enable `TypeName` in checkstyle

* Update directory

* style: use proper formatting

---------

Co-authored-by: StarDxxx <StarDxxx@users.noreply.github.com>
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com>
2024-06-08 13:37:20 +02:00
295e7436b1 style: enable MethodName in CheckStyle (#5182)
enabled: MethodName in CheckStyle
2024-05-27 09:06:06 +02:00
d2ddec55e5 style: include NAB_NEEDLESS_BOOLEAN_CONSTANT_CONVERSION (#5149)
* style: use `assertFalse` and `assertTrue`

* style: include `NAB_NEEDLESS_BOOLEAN_CONSTANT_CONVERSION`
2024-05-08 22:41:46 +05:30
d3bb691f59 style: enable HideUtilityClassConstructor in checkstyle (#5147) 2024-05-08 09:58:29 +03:00
414835db11 style: enable AvoidStarImport in checkstyle (#5141) 2024-05-05 20:48:56 +02:00
570f7e7ef6 Remove unused import (#5010) 2024-01-08 23:44:32 +02:00
8200a791a2 Add AhoCorasick (#4465)
* Added code to find Articulation Points and Bridges

* tried to solve clang-formant test

* removed new line at EOF to get lint to pass

* feature: Added Ahocorasick Algorithm

* fixed lint using clang-format

* removed datastructures/graphs/ArticulationPointsAndBridge.java from this branch

* removed main, since test-file is added. Also modified and renamed few functions.

* Added test-file for AhoCorasick Algorithm

* Modified some comments in test-file

* Modified some comments in AhoCorasick.java

* lint fix

* added few more test cases

* Modified some comments

* Change all class fields to private, added initializeSuffixLinksForChildNodesOfTheRoot() method, hashmap string search position (also has previous index based search), removed java.util.*

* Added Missing Test-Cases and more

* minor text changes

* added direct test check i.e. defining a variable expected and just checking if res and expected are equal.

* Created New Class Trie, merged 'buildTrie and buildSuffixAndOutputLinks' with 'Trie constructor'. Merged setUpStartPoints with searchIn. Now AhoCorasick contains -> inner class: Trie, Node. Methods: search and convert. Trie has -> Methods : constructor and searchIn

* Updated TestFile according to the updated AhoCorasick Class. Added Few more test cases

* updated - broken down constructor to relavent parts, made string final, made res local to searchIn(), doxygen-like style

* lint fix clang

* Updated Tests Files

* Added final field to Node class setters and Trie Constructor arguments, removed getTrieRoot() and some unnecessory comments, renamed [old -> new]: res -> positionByStringIndexValue, removed if condition from setupStartPoints()

* updated test file

* lint fix clang

* minor chage - 'removed a comment'

* added final fields to some arguments, class and variables, added a method initializePositionByStringIndexValue()

* updated to remove * inclusion and added the required modules only

* Implemented a new class PatternPositionRecorder to wrap up the position recording in searchIn()

* Added final fields to PatternPositionRecorder Class

* style: mark default constructor of `AhoCorasick` as `private`

* style: remoce redundant `public`

---------

Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com>
2023-10-08 15:16:06 +02:00
081f308b9d Add ReverseWordsInString (#4456)
* return a string of the words in reverse order concatenated by a single space.

Input: s = "the sky is blue"
Output: "blue is sky the"

* return a string of the words in reverse order concatenated by a single space.

Input: s = "the sky is blue"
Output: "blue is sky the"

* space reduce

* removed main method

* added test cases

* formatting fix

* formatting fix

* worked on pr reviews

* formatting fix

* private constructor added

* added test case for when string contains white space

* simplified method

* fix issue

* formatting issues fix

* fixed issue

* code refactor

* documented method

* worked on pr comments

* docs: add missing space

* tests: express as `ParameterizedTest`

---------

Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com>
Co-authored-by: vil02 <vil02@o2.pl>
2023-10-06 20:15:27 +02:00
ee2629c8ab Update Pangram.java using Java Collections (#4479)
* Update Pangram.java using Java Collections

A simple separate function isPangramOrNot(String s) has been created which implements the Pangram checking of a string using Java Collection Framework approach.

* Update Pangram.java using Java Collections

* Updated some linting errors in Pangram.java

* Update src/main/java/com/thealgorithms/strings/Pangram.java

Co-authored-by: Debasish Biswas <debasishbsws.dev@gmail.com>

* Updated Pangram.java

Method name updated to - isPangramUsingSet(String s)

* Updated the testcases PangramTest.java

Successfully updated the testcases in this same PR branch

---------

Co-authored-by: Debasish Biswas <debasishbsws.dev@gmail.com>
2023-10-01 16:28:13 +05:30
f010a47608 chore: enforce InsertNewlineAtEOF in clang-format (#4343)
* style: insert newline at eof

* style: use `InsertNewlineAtEOF` in `clang-format`

* fix: use `clang-format-16`

* chore: update clang-format-lint-action to v0.16.2

---------

Co-authored-by: Debasish Biswas <debasishbsws.dev@gmail.com>
2023-09-01 04:10:46 +00:00
2488a2ad51 Code cleanup (#4246) 2023-07-22 15:23:00 +00:00
9ecc3aae59 Add a new implementation for CheckAnagrams (#4231) 2023-07-06 16:56:59 +03:00
415a04ea7f Add automatic linter (#4214) 2023-06-09 20:05:14 +08:00
00282efd8b style: format code (#4212)
close #4204
2023-06-09 18:52:05 +08:00
89b7ee42e6 Add one more solution for anagrams check (#4175) 2023-05-05 20:50:47 +03:00
b55fc972ac Add tests for HorspoolSearch (#4165) 2023-04-25 14:04:15 +03:00
86c93146d9 Add Run-Length Encoding (fixes #3911) (#3916) 2023-03-19 09:51:48 +02:00
dd949e9b5d Increase test coverage (fixes #3895 #3896) (#3897) 2023-03-05 21:03:08 +02:00
1a391c2fe9 Add ValidParentheses (#3689) 2022-11-01 19:26:13 +02:00
fea982d54d Create Atoi Function.java (#3756)
* Create MyAtoi.java

There is a method in C++, which converts String to an Integer, called Atoi function, this is my own implementation of this function.

* Update directory

* Update MyAtoi.java

* Create MyAtoiTest.java

* Update directory

* Update directory

* Update directory

* Update MyAtoi.java

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: Debasish Biswas <debasishbsws.abc@gmail.com>
2022-11-01 16:34:14 +05:30
9e7456a2a8 Add tests for merge sort (#3715) 2022-10-31 19:26:49 +00:00
bd267bb7d8 Fixed error in Palindrome.java and gave semantic names to functions (#3643)
* fixed error and changed functions names

fixed error at line 57 and gave semantic names to functions with comments

* renamed functions

renamed functions to match with original functions' names in the file

* Updated TestCases

Updated TestCases and changed a function name

* Removed main() and changed function name

Removed main() and changed the function name from isPalindromeStringBuilder to isPalindrome

* fixed typo

Co-authored-by: Debasish Biswas <debasishbsws.abc@gmail.com>
2022-10-28 00:17:16 +05:30
acf7a86b96 Added function in Pangram.java (#3703)
* Added function in Pangram.java

Added isPangramIndexOf() function in Pangram.java

* Added Tests for new function

Added Tests for isPangramIndexOf() function

* fixed typo

* changed function name

* changed function name

Co-authored-by: Debasish Biswas <debasishbsws.abc@gmail.com>
2022-10-27 23:26:34 +05:30
a0d03e814a Update WordLadderTest.java & WordLadder.java (#3674) 2022-10-26 21:14:03 +08:00
eecec0f706 Add test case for LetterCombinationsOfPhoneNumber (#3662) 2022-10-26 16:38:24 +08:00
0953236b4c Add tests for WordLadder (#3668) 2022-10-26 07:18:33 +00:00
3aadb9da1e Add tests for vowels check (#3658) 2022-10-26 09:15:25 +03:00
9a09a9e772 Add test case for Rotation (#3667) 2022-10-26 09:44:37 +08:00
f35aeb5311 Add ReverseStringTest (#3607)
Co-authored-by: jtuong <Rofleveryday1?>
2022-10-22 19:23:35 +00:00
bf03d16303 Add test for Lower (#3328) 2022-10-22 19:17:18 +00:00
e96f567bfc Format code with prettier (#3375) 2022-10-03 17:23:00 +08:00
9c418ba827 Add pangram check tests (#3267) 2022-09-15 13:31:11 +00:00
20a1f40c5a Add Isomorphic Strings (#3253)
Co-authored-by: Andrii Siriak <siryaka@gmail.com>
2022-09-13 02:29:26 +03:00
d8c9c1ac85 Add Hamming Distance (#3164) 2022-06-23 09:29:08 +03:00
a33a26a9d1 Cover CheckAnagrams with tests (#3124) 2022-06-14 10:50:50 +03:00
2e09e44a38 Add ZigZag Encoding and Longest Nonrepetitive Substring Algorithms (#3058) 2022-05-26 12:47:23 +03:00
8d099ee7d1 Update Anagrams and add unit test (#3002)
* Add test for Anagrams
* Update Anagrams.java

Co-authored-by: Yang Libin <contact@yanglibin.info>
2022-04-04 16:34:27 +08:00
140f6ec6e3 Add test for Upper (#3001) 2022-04-04 16:21:53 +08:00
1b02b41fcc Add test for Palindrome (#2993) 2022-04-03 16:19:24 +03:00
63f486c6ba Add tests for CharacterSame (#2989) 2022-03-31 20:54:48 +03:00
7d5de041eb Test alphabetical (#2987) 2022-03-24 08:03:36 +02:00
8b71a15cbb Add test for Pangram.java (#2986) 2022-03-23 22:34:50 +02:00