Write a program that uses linear recursion to generate a copy of an original collection in which the copy contains duplicates of every item in the original collection. Using linear recursion, implement a function that takes a list as user-supplied runtime input and returns a copy of it in which every list item has been duplicated. Given an empty list the function returns the base case of an empty list.

Answers

Answer 1

Answer: b

Explanation:

Answer 2

Program using linear recursion to duplicate items in a list:

def duplicate_list(lst):

   if not lst:

       return []

   else:

       return [lst[0], lst[0]] + duplicate_list(lst[1:])

# Example usage

user_input = input("Enter a list of items: ").split()

original_list = [item for item in user_input]

duplicated_list = duplicate_list(original_list)

print("Duplicated list:", duplicated_list)

How can a program use linear recursion to duplicate items in a list?

By implementing a function that utilizes linear recursion, we can create a copy of an original list with duplicated items. The function duplicate_list takes a list lst as input and checks if it is empty. If the list is empty, it returns an empty list as the base case.

Otherwise, it combines the first item of the list with itself and recursively calls the function with the remaining items (lst[1:]). The duplicated items are added to the resulting list. This process continues until all items in the original list have been duplicated and the duplicated list is returned.

Read more about linear recursion

brainly.com/question/31313045

#SPJ2


Related Questions

Discuss the OSI Layer protocols application in Mobile Computing

Answers

Answer:

The OSI Model (Open Systems Interconnection Model) is a conceptual framework used to describe the functions of a networking system. The OSI model characterizes computing functions into a universal set of rules and requirements in order to support interoperability between different products and software.

hope that helps you

please follow

please mark brainliest

What are the best websites to learn about Java Programing?

Answers

Answer:

well you can download some apps from the play store and it is easy for you to learn from there (interactive)

with the aid of examples explain the differences between open source software and licensed software​

Answers

Answer:

Explanation:

Source is when a company go no limits to run the software but can easily be taken done by a complaint or two or a bug while a licensed it a protected version of the software.

Write a program that repeatedly accepts as input a string of ACGT triples and produces a list of the triples and the corresponding amino acids, one set per line. The program will continue to accept input until the user just presses ENTER without entering any DNA codes.

Answers

Answer:

Explanation:

The following code is written in Python. I created a dictionary with all the possible gene combinations and their corresponding amino acids. The user then enters a string. The string is split into triples and checked against the dictionary. If a value exists the gene and amino acid is printed, otherwise an "Invalid Sequence" error is printed for that triple. The program has been tested and the output can be seen in the attached image below.

def printAminoAcids():

   data = {

       'TTT': 'Phe', 'TCT': 'Ser', 'TGT': 'Cys', 'TAT': 'Tyr',

       'TTC': 'Phe', 'TCC': 'Ser', 'TGC': 'Cys', 'TAC': 'Tyr',

       'TTG': 'Leu', 'TCG': 'Ser', 'TGG': 'Trp', 'TAG': '***',

       'TTA': 'Leu', 'TCA': 'Ser', 'TGA': '***', 'TAA': '***',

       'CTT': 'Leu', 'CCT': 'Pro', 'CGT': 'Arg', 'CAT': 'His',

       'CTC': 'Leu', 'CCC': 'Pro', 'CGC': 'Arg', 'CAC': 'His',

       'CTG': 'Leu', 'CCG': 'Pro', 'CGG': 'Arg', 'CAG': 'Gln',

       'CTA': 'Leu', 'CCA': 'Pro', 'CGA': 'Arg', 'CAA': 'Gln',

       'GTT': 'Val', 'GCT': 'Ala', 'GGT': 'Gly', 'GAT': 'Asp',

       'GTC': 'Val', 'GCC': 'Ala', 'GGC': 'Gly', 'GAC': 'Asp',

       'GTG': 'Val', 'GCG': 'Ala', 'GGG': 'Gly', 'GAG': 'Glu',

       'GTA': 'Val', 'GCA': 'Ala', 'GGA': 'Gly', 'GAA': 'Glu',

       'ATT': 'Ile', 'ACT': 'Thr', 'AGT': 'Ser', 'AAT': 'Asn',

       'ATC': 'Ile', 'ACC': 'Thr', 'AGC': 'Ser', 'AAC': 'Asn',

       'ATG': 'Met', 'ACG': 'Thr', 'AGG': 'Arg', 'AAG': 'Lys',

       'ATA': 'Ile', 'ACA': 'Thr', 'AGA': 'Arg', 'AAA': 'Lys'

   }

   string = input("Enter Sequence or just click Enter to quit: ")

   sequence_list = []

   count = 0

   gene = ""

   for x in range(len(string)):

       if count < 3:

           gene += string[x]

           count += 1

       else:

           sequence_list.append(gene)

           gene = ""

           gene += string[x]

           count = 1

   sequence_list.append(gene)

   for gene in sequence_list:

       if gene.upper() in data:

           print(str(gene.upper()) + ": " + str(data[gene.upper()]))

       else:

           print(str(gene.upper()) + ": invalid sequence")

printAminoAcids()

what is
computer.write its example

Answers

The definition of a computer is a person or electronic device that makes and stores quick calculations or processes information. An example of a famous human computer is Ada Lovelace. An example of a computer is the MacBook.

2. Which property is used for hiding text of the textbox?
a) Password Char b) Text Char c) Char Password d) Pass Char

Answers

Answer:

password char

Explanation:

The password char property allows the text being written in the textbox to be hidden in the form of dots or stars. As such the user entering the password is secure, as no one nearby can know the password by watching the texts.

The advantage of returning a structure type from a function when compared to returning a fundamental type is that a. the function can return multiple values b. the function can return an object c. the function doesn’t need to include a return statement d. all of the above e. a and b only

Answers

Answer:

The advantage of returning a structure type from a function when compared to returning a fundamental type is that

e. a and b only.

Explanation:

One advantage of returning a structure type from a function vis-a-vis returning a fundamental type is that the function can return multiple values.  The second advantage is that the function can return can an object.  This implies that a function in a structure type can be passed from one function to another.

If your organization hires a new employee, what would you do to create a user account in the Linux system and add the account to a group? What commands would you use? What configuration files would you check and modify?

Answers

Following are the responses to this question:

The user account is "olivia".In the Linux system to see the account go to the "/home directory".For the configuration file we use ".bash_logout , .bash_profile, and .bashrc" files.

Creating users:

We will use the useradd command to achieve this. Using that same command, you can create users who would log in or customers who would log in (in the case of creating a user for a software installation).

In its basic form, the command is as follows:

[Options] useradd username

Take this user olivia, for instance. Assuming that you had been to issue the command prompt:

olivia has become a user.

Users are added to the system without the need for a home directory and are unable to log on. It if we were using this rather than running the command without arguments?

sudo using useradd -m olivia

Using the command above, a new user would be created, including a home directory that corresponded to the username. That means that you might now see the name "olivia" in the directory "/home".

But what about the lockout concern that was raised earlier? Both these methods are possible. After creating the user, you can enter the following command:

Password for olivia is: sudo passwd olivia

You'll be requested to enter & verify your new password once you've completed the process. This unlocks the user profile, allowing them to log in.

This command might look like if you wanted to accomplish it in one go:

sudo useradd -m olivia -p PASSWORD

You should be using Passcodes as the login for the user olivia.

As soon as the user logs in, he or she can update their account password by using the password command to input their current password, and afterward entering/verifying their new one.

To create a user that has no personal account and cannot log in, execute the following instructions:

sudo use useradd as  the-M USERNAME ​sudo use usermod as the -L USERNAME

The user to be added is identified by USERNAME.

It establishes a user with really no root folder and prevents them from signing in with a second operation.

To add an existing user to a group on Linux, follow the instructions:

As root, log in to your accountUse the useradd instruction to add a new user (for example, useradd roman)If you'd like to log on as a new customer, type su plus that user's name.Entering the word "exit" will logout you from your account.

Another way to add a user to a group under Linux would be to use the following syntax:

Alternatively, you can use the usermod command.The name of the club should be substituted for example group in this sentence.Example username should be replaced with the name of the user you'd like added.

The following operations are performed when a new login is added to the system.

The user's home directory (/home/username by default) is now created.To set configuration files for the user's session, the following secret files are copied into another user's home directory.

.bash_logout

.bash_profile

.bashrc

/var/spool/mail/username includes the user's mail spool.The new user account is arranged in groups with the same name.

Learn more:

Linux system: brainly.com/question/13843535

Programming languages categorize data into different types. Identify the characteristics that match each of the following data types.

a. Can store fractions and numbers with decimal positions
b. Is limited to values that are either true or false (represented internally as one and zero).
c. Is limited to whole numbers (counting numbers 1, 2, 3, ...)

Answers

Answer:

a) Integer data type.

b) Real data type.

c) Boolean data type.

Explanation:

a) Integer data type is limited to whole numbers (counting numbers 1, 2, 3…….).

b) Real data type can store fractions and numbers with decimal positions (such as dollar values like $10.95).

c) Boolean data type is limited to values that are either true or false (represented internally as 1 and 0 respectively).

You are the IT administrator for a small corporate network. You have recently experienced some problems with devices on the workstation in the Support Office. In this lab, your task is use Device Manager to complete the following:______.
The new network card you installed isn't working as expected (speed is only 1 Mbps). Until you can figure out what the problem is, disable the Broadcom network adapter and enable the Realtek network adapter. To make sure the network adapter has the latest drivers, update the driver for the Realtek network adapter by searching Microsoft Update. You recently updated the driver for your video card. However, the system experiences periodic crashes that you suspect are caused by the new driver. Roll back the driver to a previous version. Move the Ethernet cable to the integrated network port on the motherboard.

Answers

Answer:

I will fix it by my mind by thinking

Based on the above scenario, the steps to take is given below\

What is the management about?

The first thing is to Right-click Start and click on Device Manager and then you expand Network adapters.

Later you Disable the network adapter  and then Update the driver .

Learn more about Ethernet from

https://brainly.com/question/1637942

#SPJ2

Define firewall ?with example

Answers

Explanation:

it acts as a barrier between a trusted system or network and outside connections, such as the Internet. However, a computer firewall is more of a filter than a wall, allowing trusted data to flow through it. ... For example, a basic firewall may allow traffic from all IP.

if my answer helps you than mark me as brainliest.

Answer:

hope this helps

Explanation:

Firewalls are software or hardware that work as a filtration system for the data attempting to enter your computer or network. Firewalls scan packets for malicious code or attack vectors that have already been identified as established threats.And also firewall is a network security device that monitors incoming and outgoing network traffic and permits or blocks data packets based on a set of security rules.

What are the differences between sequential and random files? Which one do you think is better and why?

Answers

Answer:

Sequential is better

Explanation:

Sequential is more organized while the more easier to make but less dependable one is random.

sequential is used for things such as date of birth, or where someone was born.

you can't do that with a random file.

3. Using Assume the following list of keys: 36, 55, 89, 95, 65, 75, 13, 62, 86, 9, 23, 74, 2, 100, 98 This list is to be sorted using the quick sort algorithm as discussed in this chapter. Use pivot as the middle element of the list. a. Give the resulting list after one call to the function partition. b. What is the size of the list that the function partition partitioned

Answers

Answer:

a. 36, 55, 13, 9, 23, 2, 62, 86, 95, 65,74, 75, 100, 98, 89

b. 15

Explanation:

Which of these is a tool for creating mobile apps?

Appy Pie

C#

Apple Pie

C++

Answers

Answer:

C++

Explanation:

C++ is used in application development

Write an algorithm to solve general formula? ​

Answers

Answer:

2+2=4

Explanation:

simple math cause of that bubye

Microsoft office can be classified under what heading of application

Answers

Answer:

Word processing software/application

pls mark as brainliest!

Have a grt day!!!

What is the relationship between an organization’s specific architecture development process and the Six-Step Process?

Answers

Answer:

It is a method of developing architecture in various stages

Explanation:

The organization-specific architecture developmental process is a tested and repeated process for developing architecture. It made to deal with most of the systems. It describes the initial phases of development.  While the six step process is to define the desired outcomes, Endorse the process, establish the criteria and develop alternatives. Finally to document and evaluate the process.

Research via the internet and find an article in the news regarding wireless hacking, hardware hacking, or other security breach. As security and IT changed so rapidly, your article should be no older than 2007 (i.e. Less than 5 years old). Summarize the article using at least 500 words.

Answers

Hi, I provided some explanation of key terms.

Explanation:

Wireless hacking: basically the term refers to any unethical activity carried over a radio wave-connected network (eg Internet or Wifi connection) that would provide unauthorized access to information.

Hardware hacking: On the other hand, hardware hacking involves resetting physical hardware with the objective of using it in a way not originally intended by the manufacturer.

Write a program to compare the content of AX and DX registers, if they are equal store 1 (as 8 bits) in locations with offset addresses (0020H, 0021H, ..., 0040H), otherwise leave these locations without changing.
???​

Answers

Answer:

so srry I'm very low that this question

You are consulting with another medium sized business regarding a new database they want to create. They currently have multiple normalized source databases that need consolidation for reporting and analytics. What type of database would you recommend and why

Answers

Answer:

The enormous amount of data and information that a company generates and consumes today can become an organizational and logistical nightmare. Storing data, integrating it and protecting it, so that it can be accessed in a fluid, fast and remote way, is one of the fundamental pillars for the successful management of any company, both for productive reasons and for being able to manage and give an effective response to the customers.

Good big data management is key to compete in a globalized market. With employees, suppliers and customers physically spread across different cities and countries, the better the data is handled in an organization, the greater its ability to react to market demand and its competitors.

Databases are nowadays an indispensable pillar to manage all the information handled by an organization that wants to be competitive. However, at a certain point of development in a company, when growth is sustained and the objective is expansion, the doubt faced by many managers and system administrators is whether they should continue to use a database system, or if they should consider the leap to a data warehouse. When is the right time to move from one data storage system to another?

Mario is giving an informative presentation about methods for analyzing big datasets. He starts with the very basics, like what a big dataset is and why researchers would want to analyze them. The problem is that his audience consists primarily of researchers who have worked with big data before, so this information isn’t useful to them. Which key issue mentioned in the textbook did Mario fail to consider?

Answers

Answer:

Audience knowledge level

Explanation:

The Key issue that Mario failed to consider when preparing for her presentation is known as Audience knowledge level.  

Because Audience knowledge level comprises educating your audience with extensive information about the topic been presented. she actually tried in doing this but she was educating/presenting to the wrong audience ( People who are more knowledgeable than her on the topic ). she should have considered presenting a topic slightly different in order to motivate the audience.

Write a program that reads a list of 10 integers, and outputs those integers in reverse. For coding simplicity, follow each output integer by a space, including the last one. Then, output a newline. coral

Answers

def reverse_list (num_list):

try:

if num_list.isdigit() == True:

return num_list[::-1]

elif num_list < 0:

return "Negative numbers aren't allowed!"

except ValueError:

return "Invalid input!"

user_list = list (int (input ("Please enter ten random positive numbers: " )))

print (reverse_list (user_list))

A hierarchy chart can be helpful for a. planning the functions of a program b. naming the functions of a program c. showing how the functions of a program relate to each other d. all of the above e. a and c only

Answers

Answer:

Hence the correct options are option B and option C.

Explanation:  

Hierarchy Chart means top to bottom structure 0f a function or a program or an organization.  

Planning the functions of a program means deciding beforehand that what are the functions of a program and what to try to do and when to try to, hierarchy Charts are often helpful In doing/knowing this all.

   Showing how the functions of a program relate to every other means what's the connection between two functions for instance if we have a hierarchical chart of a corporation member then we'll have the connection among the members of the team i.e., first, we'll have CEO, then Manager then team/ project lead then team members and by using hierarchical chart ready to " we will be able to identify the connection among them. during a similar way, we will have a relationship among the functions of a program using the hierarchical chart.

a do-while loop that continues to prompt a user to enter a number less than 100, until the entered number is actually less than 100. End each prompt with newline Ex: For the user input 123, 395, 25, the expected output is:Enter a number (<100):Enter a number (<100):Enter a number (<100):Your number < 100 is: 25

Answers

Answer:

Explanation:

import java.util.Scanner;  

//Declare the class NumberPrompt.  

public class NumberPrompt  

{  

  public static void main(String args[])  

  {  

       /*Declare the variable of scanner class and allocate the  

       memory.*/  

       Scanner scnr = new Scanner(System.in);  

       

       //Initialize the variable userInput.  

       int userInput = 0;

       /* Your solution goes here*/

       //Start the do-while loop

       do

       {

         //Prompt the user to enter the number.

         System.out.println("Enter a number(<100)");  

         

         /*Store the number entered by the user in the

         variable userInput.*/

         userInput=scnr.nextInt();

           

       }while(userInput>=100);/*Run the do-while loop till the    

       user input is greater than 100*/  

       

       //Print the number which is less than 100.

       System.out.println("Your number <100 is "+userInput);

       return;

  }

}

Output:-

2.13 LAB: Branches: Leap Year
A year in the modern Gregorian Calendar consists of 365 days. In reality, the earth takes longer to rotate around the sun. To account for the
difference in time, every 4 years, a leap year takes place. A leap year is when a year has 366 days: An extra day, February 29th. The
requirements for a given year to be a leap year are:
1) The year must be divisible by 4
2) If the year is a century year (1700, 1800, etc.), the year must be evenly divisible by 400
Some example leap years are 1600, 1712 and 2016.
Write a program that takes in a year and determines whether that year is a leap year.
Ex If the input is
1712
the output is
1712 13 leap year.
Ex If the nouts
1913
the outoutis
1913 not leap year.
Written is Coral Language

Answers

Answer:

integer userInput

userInput = Get next input

if userInput % 400 == 0

  Put userInput to output

  Put " is a leap year" to output

else

  if userInput % 4 == 0

     Put userInput to output

     Put " is a leap year" to output

  else

     Put userInput to output

     Put " is not a leap year" to output

Explanation:

I don't know what is so special about Coral but here we go. I couldn't find and IDE that supported Coral so I just used their Coral simulator on their website. The first if statement on line 5 determines if the number is divisible by 400. If so, the leap year is on a century year e.g 1900 1800. If not, the else statement will be executed and the second if statement will execute. If the number is divisible by 4, it is a leap year. If not, the else statement gets executed in which case the number was not a century leap year or a leap year. After that the program terminates.

Hope this helped :)  If it didn't let me know and I do my best to find out what went wrong.

Have a good day :)

College
START: what new information, strategies, or techniques have you learned that will increase your technology skills? Explain why its important to START doing this right away

Answers

Answer:

Read Technical Books. To improve your technical skills and knowledge, it's best to read technical books and journals. ...

Browse Online Tutorials. ...

Build-up online profile. ...

Learn new Tools. ...

Implement what you learned. ...

Enrich your skillset. ...

Try-out and Apply.

Compute the acceleration of gravity for a given distance from the earth's center, distCenter, assigning the result to accelGravity. The expression for the acceleration of gravity is: (G * M) / (d2), where G is the gravitational constant 6.673 x 10-11, M is the mass of the earth 5.98 x 1024 (in kg) and d is the distance in meters from the earth's center (stored in variable distCenter).
#include
using namespace std;
int main() {
double G = 6.673e-11;
double M = 5.98e24;
double accelGravity;
double distCenter;
cin >> distCenter;
/* Your solution goes here */
cout << accelGravity << endl;
return 0;
}

Answers

Answer:

Replace /* Your solution goes here */ with the following expression

accelGravity = (G * M) / (distCenter *distCenter );

Explanation:

Required

Complete the code

The equivalent expression of (G * M) / (d^2) is:

(G * M) / (distCenter *distCenter );

The expression must be stored in accelGravity.

So, we have:

accelGravity = (G * M) / (distCenter *distCenter );

cloud offers better protection compare to on premise?​

Answers

Why is cloud better than on-premise? Dubbed better than on-premise due to its flexibility, reliability and security, cloud removes the hassle of maintaining and updating systems, allowing you to invest your time, money and resources into fulfilling your core business strategies.

The security of the cloud vs. on-premises is a key consideration in this debate. Cloud security controls have historically been considered less robust than onprem ones, but cloud computing is no longer a new technology. . A company running its own on-premises servers retains more complete control over security.

Believe it!!

Pls follow me.

Write a program that creates an an array large enough to hold 200 test scores between 55 and 99. Use a Random Number to populate the array.Then do the following:1) Sort scores in ascending order.2) List your scores in rows of ten(10) values.3) Calculate the Mean for the distribution.4) Calculate the Variance for the distribution.5) Calculate the Median for the distribution.

Answers

Answer:

Explanation:

The following code is written in Python. It uses the numpy import to calculate all of the necessary values as requested in the question and the random import to generate random test scores. Once the array is populated using a for loop with random integers, the array is sorted and the Mean, Variance, and Median are calculated. Finally The sorted array is printed along with all the calculations. The program has been tested and the output can be seen below.

from random import randint

import numpy as np

test_scores = []

for x in range(200):

   test_scores.append(randint(55, 99))

sorted_test_scores = sorted(test_scores)

count = 0

print("Scores in Rows of 10: ", end="\n")

for score in sorted_test_scores:

   if count < 10:

       print(str(score), end= " ")

       count += 1

   else:

       print('\n' + str(score), end= " ")

       count = 1

mean = np.mean(sorted_test_scores)

variance = np.var(sorted_test_scores, dtype = np.float64)

median = np.median(sorted_test_scores)

print("\n")

print("Mean: " + str(mean), end="\n")

print("Variance: " + str(variance), end="\n")

print("Median: " + str(median), end="\n")

tinh S(n) = 1+2+3+.....+n

Answers

Answer:

-1/12

Explanation:

[tex]\sum_{k=0}^{k=n} k = \frac{n(n+1)}{2}\\[/tex]

look up the derivation by Srinivasa Ramanujan for a formal proof.

Other Questions
Computers from a certain manufacturer have a mean lifetime of 62 months, with a standard deviation of 12 months. The distribution of lifetimes is not assumed to be symmetric. Between what two lifetimes does Chebyshev's Theorem guarantee that we will find at least approximately 75% of the computers All of the following statements about dual federalism are TRUE except:A.The US government practiced dual federalism from 1789 1860.B.The 13th Amendment to the Constitution established dual federalism.C.Under dual federalism, state governments dealt with issues directly affecting people.D.Under dual federalism, the federal government was concerned mostly with foreign relations. Todo lo que hacis, sea de palabra o de hecho, hacedlo todo en el nombre del Seor Jess, Padre por medio de l. a. Dando gracias a Dios b. Obedeciendo a nuestro c. Amando al d. Evangelizando del e. Llevando la palabra del pleasee help me with this We have an N x N square grid.We will paint each square in the grid either black or white.If we paint exactly A squares white, how many squares will be painted black?A and N are integers,Print the number of squares that will be painted black.C++ Jessica ate 7 /10 of her orange before lunch and 1/10 of her orange after lunch. How much of her orange did she eat? Using your Periodic Table, which of the following elements below has the largest atomic radius? A.) Aluminum B.) Sodium C.) Sulfur, D.) Fluorine 1/2 of 12=1/4 of?1/3 of 90=2/3of? Given the number 2376.458 rounded to the following place values: 1) Rounded to the nearest hundred, 2) Rounded to the nearest whole unit, 3) Rounded to the nearest hundredth, Let the sides of the rectangle be x and y and let f and g represent the area (A) and perimeter (p), respectively. Find the following. George has opened a new store and he is monitoring its success closely. He has found that this stores revenue each month can be modeled by r(x)=x2+6x+10 where x represents the number of months since the store opens the doors and r(x) is measured in hundreds of dollars. He has also found that his expenses each month can be modeled by c(x)=x24x+5 where x represents the number of months the store has been open and c(x) is measured in hundreds of dollars. What does (rc)(4) mean about George's new store? Iff(x) = x2 + 2x - 4andg(x) = 3x + 1Findf(g(x)) = [? ]x2 + [ ]+ In strategic management, both the short-term and long-term perspectives need to be considered because a. the creative tension between the two forces managers to develop more successful strategy. b. shareholders only care about long-term returns c. shareholder value is only measured by short-term returns. d. long-term vision precludes the analysis of present operating needs. Which equation is correct? cos x = opposite hypotenuse sin x = hypotenuse opposite cos x = hypotenuse opposite sin x = opposite hypotenuse In your opinion, did Gerald Veltmann do a good job defending the Port Chicago 50?Why or why not? PLS HELP ME I DONT HAVE MUCH TIME LEFTThe Euler buckling load of a 160-cm-long column will be _____ times the Euler buckling load of an equivalent 120-cm-long column.1.780.560.752.371.330.42Calculate the minimum area moment of inertia for a rectangular cross-section with side lengths 3 cm and 8 cm.201 cm418 cm4128 cm44 cm424 cm4 Vosotros ......................... con ellos a la salida de la escuela. *2 pointsos quedisquedisquedamos calculate the volume of a cone knowing that it has a radius of 6cm and a height of 18cm Name three West African countries By the time the United States entered World War I, fighting was focused on?