1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
zubka84 [21]
3 years ago
11

Write a function flush that takes as input a list of five cards, tests whether it is a flush (Note: straight flush is not a flus

h!) and return a boolean value. If the entry is anything other than five distinct cards, it should return (not print!) the message "This is not a valid poker hand".
Computers and Technology
1 answer:
melamori03 [73]3 years ago
5 0

Answer:

Explanation:

ef poker(hands):

   scores = [(i, score(hand.split())) for i, hand in enumerate(hands)]

   winner = sorted(scores , key=lambda x:x[1])[-1][0]

   return hands[winner]

def score(hand):

   ranks = '23456789TJQKA'

   rcounts = {ranks.find(r): ''.join(hand).count(r) for r, _ in hand}.items()

   score, ranks = zip(*sorted((cnt, rank) for rank, cnt in rcounts)[::-1])

   if len(score) == 5:

       if ranks[0:2] == (12, 3): #adjust if 5 high straight

           ranks = (3, 2, 1, 0, -1)

       straight = ranks[0] - ranks[4] == 4

       flush = len({suit for _, suit in hand}) == 1

       '''no pair, straight, flush, or straight flush'''

       score = ([1, (3,1,1,1)], [(3,1,1,2), (5,)])[flush][straight]

   return score, ranks

>>> poker(['8C TS KC 9H 4S', '7D 2S 5D 3S AC', '8C AD 8D AC 9C', '7C 5H 8D TD KS'])

'8C AD 8D AC 9C'

You might be interested in
Suppose you have two arrays of ints, arr1 and arr2, each containing ints that are sorted in ascending order. Write a static meth
telo118 [61]
Since both arrays are already sorted, that means that the first int of one of the arrays will be smaller than all the ints that come after it in the same array. We also know that if the first int of arr1 is smaller than the first int of arr2, then by the same logic, the first int of arr1 is smaller than all the ints in arr2 since arr2 is also sorted.

public static int[] merge(int[] arr1, int[] arr2) {
int i = 0; //current index of arr1
int j = 0; //current index of arr2
int[] result = new int[arr1.length+arr2.length]
while(i < arr1.length && j < arr2.length) {
result[i+j] = Math.min(arr1[i], arr2[j]);
if(arr1[i] < arr2[j]) {
i++;
} else {
j++;
}
}
boolean isArr1 = i+1 < arr1.length;
for(int index = isArr1 ? i : j; index < isArr1 ? arr1.length : arr2.length; index++) {
result[i+j+index] = isArr1 ? arr1[index] : arr2[index]
}
return result;
}


So this implementation is kind of confusing, but it's the first way I thought to do it so I ran with it. There is probably an easier way, but that's the beauty of programming.

A quick explanation:

We first loop through the arrays comparing the first elements of each array, adding whichever is the smallest to the result array. Each time we do so, we increment the index value (i or j) for the array that had the smaller number. Now the next time we are comparing the NEXT element in that array to the PREVIOUS element of the other array. We do this until we reach the end of either arr1 or arr2 so that we don't get an out of bounds exception.

The second step in our method is to tack on the remaining integers to the resulting array. We need to do this because when we reach the end of one array, there will still be at least one more integer in the other array. The boolean isArr1 is telling us whether arr1 is the array with leftovers. If so, we loop through the remaining indices of arr1 and add them to the result. Otherwise, we do the same for arr2. All of this is done using ternary operations to determine which array to use, but if we wanted to we could split the code into two for loops using an if statement.


4 0
4 years ago
Write a function named print_backward that accepts a String as its parameter and prints the characters in the opposite order. Fo
noname [10]

Answer:

Here is the JavaScript code:

function print_backward(string) {

   var revString = "";

   for (var i = string.length - 1; i >= 0; i--) {

       revString += string[i];  }

   return revString; }

document.write(print_backward("hello there!"))

Explanation:

The function print_backward takes a string as a parameter.

Then it creates a new variable revString to hold a resultant string in opposite order.

The loop iterates through the characters of given string parameter in reverse and adds each character of the string to revString in opposite order.

Then the function returns revString which is the string in opposite order.

document.write(print_backward("hello there!")) This statement calls print_backward method passing a string hello there! to the method in order to print/display the characters of string in opposite order.

Lets say the string is hello

Then the loop works as follows:

The variable i is initialized to string.length - 1

string.length returns the length of the string

The length of string is 5 as there are 5 characters in string hello.

Hence string.length - 1 = 5 -1 = 4. So i=4

The loop checks if the value of i is greater than or equals to 0. This is true because i=4

Then the program enters the body of the loop which has a statement:

revString += string[i]; this works as:

revString = revString + string[i];

As i = 4 So

At first iteration

revString = revString + string[4];

This means the last character of string hello is added to revString. The last character of hello is 'o'

revString = 'o'

The statement in loop body continues to execute and stops when the value of i becomes less than 0.

The value of is decremented by 1 i.e. i-- So i = 3

At second iteration

revString = revString + string[3];

This means the second from last character of string hello is added to revString. The second last character of hello is 'l'

revString = 'ol'

The value of is decremented by 1 i.e. i-- So i = 2

At third iteration

revString = revString + string[2];

This means the third from last character of string hello is added to revString. The third last character of hello is 'l'

revString = 'oll'

The value of is decremented by 1 i.e. i-- So i = 1

At fourth iteration

revString = revString + string[1];

This means the fourth from last character of string hello is added to revString. The fourth last character of hello is 'e'

revString = 'olle'

The value of is decremented by 1 i.e. i-- So i = 0

At fifth iteration

revString = revString + string[0];

This means the fifth from last character of string hello is added to revString. The fifth last character of hello is 'e'

revString = 'olleh'

The value of is decremented by 1 i.e. i-- and the loop breaks because the i>=0 evaluates to false.

So the program moves to the next statement:

return revString;

revString = 'olleh' is returned and the statement document.write(print_backward("hello")) prints olleh on output screen.

In the given example the string is hello there! So this works same like the explained example and prints the following output on screen:

Output:

!ereht olleh

3 0
3 years ago
What is the difference between the casual and consultative conversation? Why is it important for a person to know the difference
leonid [27]

Answer:

The answer is below

Explanation:

Casual conversation is a form of conversation that occurs between friends and families. There are no specific rules or manner in which the participants speak to each other. It is otherwise known as Informal Conversation.

Consultative conversation on the other hand is a form of conversation that occurs between people who have a close relationship but not actual friends or families.

For example, people involved in this type of conversation are the likes of Doctors and Patients, Counsellors and Students, etc. It is often considered a Semi-formal conversation.

The reason a person needs to know the difference between the two styles of conversation is for individuals to know how to present and conduct themselves appropriately during the conversation.

7 0
3 years ago
Technical colleges offer certification in audio engineering through programs that are normally from 2 to 6 months long. False Tr
kompoz [17]

Answer: False

Explanation:

Certification in Audio Engineering equips one with skills needed in the music industry such as being able to record, mix and master sounds as well as knowledge of studio equipment such as microphones, speakers, consoles and the computer software needed to blend all these components together.

As such, it can take a bit of time to learn it adequately enough to be certified.  This is why Technical colleges offer certifications in audio engineering through programs that usually last between 6 months and a year.

6 0
3 years ago
Firmware is: *
drek231 [11]

Answer:

Software that is embedded in hardware.

Explanation:

It is permanent software programmed into a read-only memory.

3 0
3 years ago
Read 2 more answers
Other questions:
  • The range A2:B4 has how many cells?<br><br> Answers:<br> 2,4,6,8
    10·2 answers
  • Programmers use _____ languages in the Rapid Application Development (RAD) methodology to facilitate code reuse?
    5·1 answer
  • Sam's manager would like him to create and distribute copies of a budget report for each department. The budget report should sh
    8·2 answers
  • Robin ensures that she is always available if anyone in the team needs her. Which quality is shown by robin?
    9·2 answers
  • What social impact did the gunpowder have on society?
    12·1 answer
  • Assume that a function with this header: function amountSaved(price, discountRate, salesTaxRate) already exists. Write a single
    14·1 answer
  • a term to describe article that can be displayed in their entirety as opposed to abstract and reference only?​
    10·1 answer
  • 2. How does the internet give us the ability to communicate?
    15·1 answer
  • In cell N2, enter a formula using the IF function and structured references as follows to determine which work tier Kay Colbert
    15·1 answer
  • which one of the following would not normally be found in an organization's information security policy?
    15·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!