Header Ads Widget

Structuring the Document in C - HackerRank Solution

Structuring the Document in C – HackerRank Solution in C:



Structuring the Document in C – HackerRank Solution

Problem :

  • Objective
  • Task
  • Example
  • Input Format
  • Sample Input 0
  • Sample Output 0
  • Solution
  • Explanations

Objective :

A document is represented as a collection paragraphs, a paragraph is represented as a collection of sentences, a sentence is represented as a collection of words and a word is represented as a collection of lower-case ([a-z]) and upper-case ([A-Z]) English characters. You will convert a raw text document into its component paragraphs, sentences and words. To test your results, queries will ask you to return a specific paragraph, sentence or word as described below.

Alicia is studying the C programming language at the University of Dunkirk and she represents the words, sentences, paragraphs, and documents using pointers:

A word is described by:

struct word {
char* data;
};

A sentence is described by:
struct sentence {
struct word* data;
int word_count;//the number of words in a sentence
};
The words in the sentence are separated by one space (” “). The last word does not end with a space

A paragraph is described by:
struct paragraph {
struct sentence* data ;
int sentence_count;//the number of sentences in a paragraph
};
The sentences in the paragraph are separated by one period (“.”).

A document is described by:
struct document {
struct paragraph* data;
int paragraph_count;//the number of paragraphs in a document
};

The paragraphs in the document are separated by one newline(“\n”). The last paragraph does not end with a newline.

For example:
Learning C is fun.
Learning pointer is more fun.it is good to have pointers.

The only sentence in the first paragraph could be represented as:
struct sentence first_sentence_in_first_paragraph;
first_sentence_in_first_paragraph.data = {“Learning”, “C”, “is”, “fun”};

The first paragraph itself could be represented as:
struct paragraph first_paragraph;
first_paragraph.data = {{“Learning”, “C”, “is”, “fun”}};.

The first sentence in the second paragraph could be represented as:
struct sentence first_sentence_in_second_paragraph;
first_sentence_in_second_paragraph.data = {“Learning”, “pointers”, “is”, “more”, “fun”};

The second sentence in the second paragraph could be represented as:
struct sentence second_sentence_in_second_paragraph;
second_sentence_in_second_paragraph.data = {“It”, “is”, “good”, “to”, “have”, “pointers”};

The second paragraph could be represented as:
struct paragraph second_paragraph;

second_paragraph.data = {{“Learning”, “pointers”, “is”, “more”, “fun”}, {“It”, “is”, “good”, “to”, “have”, “pointers”}};

struct document Doc;
Doc.data = {{{“Learning”, “C”, “is”, “fun”}}, {{“Learning”, “pointers”, “is”, “more”, “fun”}, {“It”, “is”, “good”, “to”, “have”, “pointers”}}};

Alicia has sent a document to her friend Teodora as a string of characters, i.e. represented by char* not  struct document. help her convert the document to struct document from by completing the following function :
  • void initialise_document(char* text) to initialise the document. you have to intialise the global variable Doc of type struct document.
  • struct paragraph kth_paragraph(int k) to return the kth paragraph in the document.
  • struct sentence kth_sentence_in_mth_paragraph(int k, int m) to return the kth sentence in the mth paragraph.
  • struct word kth_word_in_mth_sentence_of_nth_paragraph(int k, int m, int n) to return the kth word in the mth sentence of the nth paragraph.

Task:

This challenge requires you to print Hello World on a single line, and then print the already provided input string to stdout. If you are not familiar with C, you may want to read about the printf() command.

This challenge needs you to print hello World on one line, then print the already provided input string to stdout. If you’re not conversant in C, you will need to examine the printf() command.

Input Format:

The first line contains the integer paragraph_count.
Each of the next paragraph_count line contains a paragraph as a single string.
The next line contains the integer q, the number of queries.
Each of the next q lines contains a query in one of the following formats:
  • 1 k: this corresponds to calling the function kth_paragraph.
  • 2 k m: this corresponding to calling the function kth_sentence_in_mth_paragraph.
  • 3 k m n: this corresponds to calling the function kth_word_in_mth_sentence_of_nth_paragraph

Sample Input 0:

2
Learning C is fun.
Learning pointers is more fun.It is good to have pointers.
3
1 2
2 1 1
3 1 1 1

Sample Output 0:

Learning pointers is more fun.It is good to have pointers.
Learning C is fun
Learning

Structuring the Document in C – HackerRank Solution

Solution Solution :

struct document get_document(char* text) {
struct document doc;

int pcount = 0;
for(int i = 0; i < strlen(text) ; i ++) {
if(text[i] == ‘\n’) pcount ++;
}
pcount ++;

doc.paragraph_count = pcount;
doc.data = malloc(pcount * sizeof(struct paragraph));

for(int n = 0, m = 0, l = 0, i = 0; i < pcount; i ++) {
int scount = 0;
while(text[n] != ‘\n’ && n < strlen(text)) {
if(text[n] == ‘.’) scount ++;
n ++;
}
n ++;

doc.data[i].sentence_count = scount;
doc.data[i].data = malloc(scount * sizeof(struct sentence));

for(int j = 0; j < scount; j ++) {
int wcount = 0;
while(text[m] != ‘.’ && m < n) {
if(text[m] == ‘ ‘) wcount ++;
m ++;
}
m ++;
if(text[m] == ‘\n’) m ++;
wcount ++;

doc.data[i].data[j].word_count = wcount;
doc.data[i].data[j].data = malloc(wcount * sizeof(struct word));

for(int k = 0; k < wcount; k ++) {
int ccount = 0;
while(text[l] != ‘ ‘ && text[l] != ‘.’ && l < m) {
ccount ++;
l ++;
}
l ++;
if(text[l] == ‘\n’) l ++;

ccount ++;
doc.data[i].data[j].data[k].data = malloc(ccount * sizeof(char));
}
}
}

int r = 0;
for(int i = 0; i < doc.paragraph_count; i ++) {
for(int j = 0; j < doc.data[i].sentence_count; j ++) {
for(int k = 0; k < doc.data[i].data[j].word_count; k ++) {
int l = 0;
while(text[r] != ‘ ‘ && text[r] != ‘.’ && text[r] != ‘\n’) {
doc.data[i].data[j].data[k].data[l] = text[r];
r++;
l++;
}
doc.data[i].data[j].data[k].data[l] = ‘\0’;
if(text[r] == ‘.’) {
r++;
break;
}
r ++;
}
if(text[r] == ‘\n’) {
r ++;
break;
}
}
}

return doc;
}

struct word kth_word_in_mth_sentence_of_nth_paragraph(struct document Doc, int k, int m, int n) {
return Doc.data[n – 1].data[m – 1].data[k – 1];
}

struct sentence kth_sentence_in_mth_paragraph(struct document Doc, int k, int m) {
return Doc.data[m – 1].data[k – 1];
}

struct paragraph kth_paragraph(struct document Doc, int k) {
return Doc.data[k – 1];
}

Do Solve in Hackerrank – Click Here

Explanations : Click Me To Get Explain Video

Firstly, You have to Copy The Code Here and Go to Your Structuring the Document in C – HackerRank Solution Questions Problem. Then You Have to go Submission Page. Now You Have Pasted this Copy Code and Run This Code by Compiler. You Can See All Task Should be Done. All Private and Public Cases Passed. Then Submit Your Code Finally.

What is #Include<stdio.h> ?

#include<stdio.h> is used to included header file in c programming language. It is a Mandetory. It is also Compiler Directives to Include INPUT/OUTPUT related function in our Program. The stdio.h is a file with “.h” extension which is contain the prototypes [not definition] of standard input-output functions used in c program.

For Others File We Have to Discuss in Future Articles. Visit Our Official Website.

Structuring the Document in C – HackerRank Solution is a Solution Where You Can See The Code of Structuring the Document in C – HackerRank Solution and Understand The Code Level. If You Want Others Code of Hackerrank Solution In C then You Can Visit Our Official Website For More Information About Hackerrank Solution In C.

What is int main() ?

‘int main’ means our perform must come thusme whole number at the top of the execution and that we do so by returning zero at the top of the program. zero is that the normal for the “successful execution of the program”.

Also You Can Read – Database Management System (DBMS)

What is Printf and Scanf ?

The printf() and scanf() functions area unit used for input and output in C language. each functions area unit inherent library functions, outlined in stdio.h (header file).

What is Compiler ?

The language processor that reads the whole program written in application-oriented language as a full in one go and interprets it into identical program in machine language is named a Compiler. Example: C, C++, C#, Java. compilers/assemblers area unit themselves package, and reside where they were put in on the pc. that additionally implies that you just will have as many/few of every as you wish.

How “Structuring the Document in C – HackerRank Solution” program works?

  • The #include is a preprocessor command that tells the compiler to include the contents of stdio.h (standard input and output) file in the program.
  • The stdio.h file contains functions such as scanf() and printf() to take input and display output respectively.
  • If you use the printf() function without writing #include <stdio.h>, the program will not compile.
  • The execution of a C program starts from the main() function.
  • printf() is a library function to send formatted output to the screen. In this program, printf() displays Hello, World! in C text on the screen.
  • The return 0; statement is the “Exit status” of the program. In simple terms, the program ends with this statement.

The #include could be a preprocessor command that tells the compiler to incorporate the contents of stdio.h (standard input and output) enter the program.
The stdio.h file contains functions like scanf() and printf() to require input and show output severally.
If you utilize the printf() perform while not writing #include , the program won’t compile.
The execution of a program starts from the main() perform.
printf() could be a library perform to send formatted output to the screen. during this program, printf() displays hello, World! in C text on the screen.
The return 0; statement is the “Exit status” of the program. In straightforward terms, the program ends with this statement.

Hackerrank Answer Structuring the Document in C – HackerRank Solution

Structuring the Document in C – HackerRank Solution may be a sample program designed to acquaint users with most programming languages. Beginners ar introduced to the essential syntax of a programing language by learning the way to print out “Hello World” on the device screen. printf(“Hello World”); This line tells the compiler to show the message “Hello World” on the screen. This line is termed an announcement in C. each statement is supposed to perform some task.

Conclusion :

So, Learners today you have learned about basic Structuring the Document in C – HackerRank Solution . Now you can solve Structuring the Document in C – HackerRank Problem.

If you still have any doubt regarding the problem Just Watch Explanation Video, then Till any Queries , feel free to contact in the comment section.

Disclaimer:

The above problem Structuring the Document in C – HackerRank Solution is generated by HackerRank but the solution is provided by Us (Check DMCA for Others). If you continue to have any doubt relating to the matter simply Watch rationalization Video, then until any Queries , be happy to contact within the comment section.

Post a Comment

0 Comments