আমার মাঝের নামটি কী?


30

দ্রষ্টব্য: বিজয়ী উত্তর 4/12/17 এ নির্বাচিত হবে বর্তমান বিজয়ী হলেন জল্ফ, 1 বাইট

আমি অবাক হই যে এই সাইটে আমার মাঝের নাম চ্যালেঞ্জটি এখনও আমাদের কাছে নেই had আমি প্রচুর অনুসন্ধান করেছিলাম কিন্তু কিছুই পাইনি। এটি যদি কোনও ডুপ হয় তবে দয়া করে এটিকে ফ্ল্যাগ করুন।

আপনার চ্যালেঞ্জ

দেখে মনে হচ্ছে এমন একটি স্ট্রিং পার্স করুন Jo Jean Smithএবং ফিরে আসুন Jean

পরীক্ষার মামলা

Input: Samantha Vee Hills
Output: Vee

Input: Bob Dillinger
Output: (empty string or newline)

Input: John Jacob Jingleheimer Schmidt
Output: Jacob Jingleheimer

Input: Jose Mario Carasco-Williams
Output: Mario

Input: James Alfred Van Allen
Output: Alfred Van 

(এটি শেষটি প্রযুক্তিগতভাবে ভুল, তবে এটি ঠিক করা খুব শক্ত হবে))

নোট:

  • নামগুলির মধ্যে সর্বদা কমপক্ষে 2 স্পেস-বিভক্ত অংশ থাকবে যার মধ্যে সীমাহীন মাঝের নাম থাকবে বা স্ট্রিংগুলির তালিকা / অ্যারে হতে পারে।
  • নামগুলিতে বর্ণমালা থাকতে পারে (কেস-সংবেদনশীল) এবং - ( 0x2d))
  • আপনি একটি ট্রেলিং নিউলাইন আউটপুট করতে পারেন।
  • একটি পেছনের নতুন লাইনের জন্য আপনার ইনপুট লাগতে পারে।
  • STDIN থেকে ইনপুট, একটি ফাংশন প্যারামিটার, বা কমান্ড-লাইন আর্গুমেন্ট অনুমোদিত তবে এটিকে হার্ড-কোডিংয়ের অনুমতি নেই।
  • স্ট্যান্ডার্ড লুফোলস নিষিদ্ধ।
  • আউটপুট ফাংশন রিটার্ন মান, STDOUT, STDERR, ইত্যাদি হতে পারে etc.
  • আউটপুটে ট্রেলিং স্পেস / নিউলাইন / ট্যাবগুলি অনুমোদিত।
  • কোন প্রশ্ন? নিচে মন্তব্য করুন!

এটি , তাই বাইটের মধ্যে সংক্ষিপ্ততম আনসার!


2
আউটপুট স্ট্রিংগুলির একটি তালিকা হতে পারে?
অ্যান্টনি ফ্যাম

5
যদি স্থান-বিভাজিত স্ট্রিংয়ের চেয়ে অন্য ফর্ম্যাটগুলির অনুমতি দেওয়া হয় তবে দয়া করে এটিকে নির্দিষ্টকরণে সম্পাদনা করুন।
মার্টিন এন্ডার

5
@ প্রোগ্রামার ৫০০০: যদি ইনপুটটি স্ট্রিংগুলির একটি তালিকা হতে পারে তবে আউটপুটটি কেমন? Is ["John", "Jacob", "Jingleheimer", "Schmidt"]-> ["Jacob", "Jingleheimer"]একটি বৈধ সমাধান?
নিমিম

3
নেতৃস্থানীয় স্থান অনুমোদিত?
betseg

2
@ ডিজে কারণ "ভ্যান" তার মাঝের নাম নয়, এটি তার শেষ নামের অংশ। একটি বিশেষ উদ্বেগজনক ঘটনা হ'ল ডেভিড লয়েড জর্জ, যার প্রথম নাম ডেভিড এবং শেষ নাম লয়েড জর্জ। সত্যিকারের লোকদের এর মতো করে পার্স করার যে কোনও প্রয়াস বিনষ্ট হয়। আসলে, আপনি এমনকি প্রথম এবং শেষ নামগুলি কী তা বলতে পারবেন না (ভাবেন লি শি)।
ডেভিড কনরাড

উত্তর:


4

জल्फ, 1 বাইট

ইনপুটটির অভ্যন্তর পায়। এখানে চেষ্টা করুন!


উদাহরণটি চলমান আছে বলে মনে হচ্ছে না - আমি কোনও বোতামে ক্লিক করলে কিছুই ঘটবে বলে মনে হয় না। ক্রোম 57.0.2987.133 ব্যবহার করে

@ ইয়িমিনরং আমি কেবল এটি ফায়ার ফক্সে কাজ করার নিশ্চয়তা দিতে পারি।
কনর ও'ব্রায়ান

44

ওহম , 2 বাইট (সিপি 437)

স্ট্রিংগুলির একটি তালিকা গ্রহণ করে এবং প্রদান করে।

()

ব্যাখ্যা:

()   Main wire, arguments: a

(    Remove the first element of a
 )   ...and then the last element of that
     Implicit output

10
আমার ধারনা করা কাজের সঠিক সরঞ্জাম
রোহান ঝুনঝুনওয়ালা

15

তেজ, 6 5 বাইট

dW$BD

এটি অনলাইন চেষ্টা করুন!

(পিছনের স্থান সহ আউটপুট)

যেহেতু ভিম ভি এর সাথে বিপরীত সামঞ্জস্যপূর্ণ তাই আমি ভি এর জন্য একটি টিআইও লিঙ্ক অন্তর্ভুক্ত করেছি

ব্যাখ্যা

dW                      " Delete up to the next word (removes the first name)
$                       " Go to the end of the line
B                       " Go back one word
D                       " Delete it

ধ্রত, তুমি আমাকে এতে মারধর কর। dWWDআপনাকে একটি বাইট বাঁচায়
ডিজেএমসিএমহেম

5
@ ডিজেএমসিএমহেম এটি কেবলমাত্র একটি মাঝারি নামের জন্য কাজ করে।
মার্টিন এন্ডার

DW এবং dw এর মধ্যে পার্থক্য কী?
ডানকান এক্স সিম্পসন

1
@ ডানকানএক্সসিম্পসন dWহোয়াইটস্পেস পর্যন্ত মুছে ফেলবে । dwশব্দহীন অক্ষর না হওয়া পর্যন্ত মুছে ফেলা হয়।
মনিকার লসুইট

14

পাইথন , 24 বাইট

lambda n:n.split()[1:-1]

অনলাইন স্ট্রিং ইনপুট চেষ্টা করে দেখুন!

ইনপুট ফর্ম্যাট: স্ট্রিং


পাইথন 2 , 16 বাইট

lambda n:n[1:-1]

এটি অনলাইন তালিকা ইনপুট ব্যবহার করে দেখুন!

ইনপুট ফর্ম্যাট: তালিকা


Pythonপরিবর্তে আপনার সাথে শিরোনামটি সম্পাদনা করা উচিত Python 2, কারণ এটি Python 3পাশাপাশি কাজ করে যাচ্ছিল এটি পোস্ট করার জন্য।
মিঃ এক্সকোডার

@ L3viathan যেহেতু ওপিতে আউটপুট ফর্ম্যাটটির উল্লেখ নেই must be a string, এবং যেহেতু ইনপুট ফর্ম্যাটটিকে একটি তালিকা হতে অনুমতি দেওয়া হয়, তাই একটি তালিকা মুদ্রণ করা ভুল ফলাফল হিসাবে বিবেচনা করা যায় না!
কীর্তন প্রভাকরণ 15

প্রশ্নের মতামত অনুসারে, আপনি স্ট্রিংগুলির একটি তালিকা ইনপুট এবং আউটপুট উভয়ই করতে পারেন। একগুচ্ছ বাইট সংরক্ষণ করুনlambda n:n[1:-1]
লুক সাউকজাক

1
যেহেতু আপনি STDIN থেকে পড়তে পারেন, তাই ল্যাম্বদাটি প্রতিস্থাপন করতে পারবেন input()(কেবলমাত্র পাইথন 3)
বলপয়েন্টবেন

তুমি ঠিক. ধন্যবাদ। আমি সম্পাদনাগুলি যোগ করেছি!
কীর্তন প্রভাকরণ

13

ব্রেন-ফ্লাক , 133 বাইট

{{}((((()()()()){}){}){}[{}](<()>)){{}{}(<(())>)}{}}{}{({}<>)<>}<>{{}((((()()()()){}){}){}[{}](<()>)){{}{}(<(())>)}{}}{}{({}<>)<>}<>

এটি অনলাইন চেষ্টা করুন!

কোডের 132 বাইট, আরও 1 বাইট -c যা ASCII ইনপুট এবং আউটপুটকে অনুমতি দেয়।

দুর্ভাগ্যক্রমে, এতে প্রচুর নকল কোড রয়েছে তবে এটি পুনরায় ব্যবহার করা সত্যিই কঠিন। আমি পরে এটি দেখতে হবে। এখানে একটি ব্যাখ্যা:

#While True
{
    #Pop
    {}

    #Not equals 32
    ((((()()()()){}){}){}[{}](<()>)){{}{}(<(())>)}{}

#Endwhile
}

#Pop the 0
{}

#Reverse Stack
{({}<>)<>}<>

#While True
{
    #Pop
    {}

    #Not equals 32
    ((((()()()()){}){}){}[{}](<()>)){{}{}(<(())>)}{}

#Endwhile
}

#Pop the 0
{}

#Reverse Stack
{({}<>)<>}<>

86 টি বাইটস যখন আপনি মন্তব্যগুলি সরাবেন। আমি প্রথম দুটি এবং শেষ লাইন যুক্ত করেছি। টিআইও
রিলে

@ অলি শীতল সমাধান। এটি নিজেকে নির্দ্বিধায় পোস্ট করুন!
ডিজেএমসিএমহেম


12

Haskell,, 23 , 17 9 বাইট

init.tail

স্ট্রিংগুলির একটি তালিকা গ্রহণ করে এবং প্রদান করে। এটি অনলাইন চেষ্টা করুন!

প্রথম স্ট্রিং ড্রপ, শেষ স্ট্রিং ড্রপ।

সম্পাদনা করুন: @ জেনেরিক প্রদর্শন নামটি উল্লেখ করেছে, ইনপুটটি স্ট্রিংগুলির একটি তালিকা হতে পারে, যা 6 বাইট সংরক্ষণ করেছিল।

দ্বিতীয় সম্পাদনা: একক স্ট্রিংয়ের পরিবর্তে স্ট্রিংয়ের তালিকা ফেরত দিন


দেখে মনে হচ্ছে ইনপুটটিকে কোনও তালিকার অনুমতি রয়েছে, সুতরাং -5 বাইটের জন্য শব্দগুলি ফেলে দিন
জেনেরিক প্রদর্শন নাম

@ জেনেরিকডিসপ্লে নাম: ওহ, খেয়াল নেই। ধন্যবাদ!
নিমি

আমার ওহমের উত্তর এবং গাণিতিক দুটি স্ট্রিংয়ের আউটপুট তালিকারও উত্তর দেয়, যাতে আপনি সম্ভবত unwords.-8 বাইটের জন্য ড্রপ করতে পারেন ।
নিক ক্লিফোর্ড

@ নিকক্লিফফোর্ড: হ্যাঁ, আমি নিজে দেখেছি এবং ওপিকে স্পষ্টতা চেয়েছিলাম।
নিমি

11

ম্যাথমেটিকা, 10 বাইট

Rest@*Most

একটি নামবিহীন ফাংশন যা স্ট্রিংগুলির একটি তালিকা গ্রহণ করে এবং ফেরত দেয়।

Restশেষ উপাদানটি Mostত্যাগ করে, প্রথম উপাদানটিকে ত্যাগ করে, @*এটি ফাংশন কম্পোজিশন। সোয়াপিং Restএবং Mostবা ডান-রফা ব্যবহার /*পরিবর্তে এছাড়াও কাজ করবে। এই #[[2;;-2]]&বাইট দ্বারা সূচককে বীট করে।


10

ব্রেন-ফ্লাক , 86 বাইট

(()()){({}[()]<{{}((((()()()()){}){}){}[{}](<()>)){{}{}(<(())>)}{}}{}{({}<>)<>}<>>)}{}

এটি অনলাইন চেষ্টা করুন!

এই কোডটির বেশিরভাগই এই উত্তর থেকে আসে । আপনি যদি আমার সমাধানটি পছন্দ করেন তবে আপনারও সেইটিকে উত্সাহ দেওয়া উচিত।

#Push 2
(()())

#Loop twice
{({}[()]<

  #While not a space
  {
      #Pop
      {}

      #Not equals 32
      ((((()()()()){}){}){}[{}](<()>)){{}{}(<(())>)}{}

  #Endwhile
  }

  #Pop the 0
  {}

  #Reverse Stack
  {({}<>)<>}<>

#End loop twice
>)}{}

সাবাশ! আমি পরে ধাক্কা দেওয়ার জন্য একটি কাউন্টার ধরে রাখার বিষয়ে ভাবি নি, তাই বিভিন্ন স্ট্যাকগুলি জুড়ে কীভাবে লুপ করা যায় সে সম্পর্কে আমি খুব দীর্ঘ সময় ব্যয় করেছি।
ডিজেএমসিএমহেম

8

জাভা 7, 74 বাইট

String f(String s){return s.substring(s.indexOf(' '),s.lastIndexOf(' '));}

জাভা 8, 49 বাইট

s->s.substring(s.indexOf(' '),s.lastIndexOf(' '))

ফাংশন যা স্থানের অক্ষর এবং সর্বশেষের প্রথমটি চিহ্নিত করে এবং মধ্যমটি বের করে। ফলস্বরূপ স্ট্রিং একটি স্পেস অক্ষর দ্বারা উপসর্গযুক্ত করা হয়েছে (পোস্টিংয়ের সময়, ওপিকে স্পেস স্পষ্ট করে দেয় না যে নেতৃস্থানীয় স্পেসগুলি অনুমতি দেওয়া হয়েছে), যা .trim()অতিরিক্ত 7 টি বাইটের জন্য কোড যুক্ত করে নির্মূল করা যেতে পারে ।

সি # এর সাথে তুলনা করে জাভাতে সাব-স্ট্রিং দৈর্ঘ্যের পরিবর্তে শেষ সূচকটি নির্দিষ্ট করার সুবিধা রয়েছে যা বাইট সংখ্যাটি কমিয়ে আনে।


7

জাভাস্ক্রিপ্ট (ES6), 22 বাইট

স্ট্রিংগুলির একটি অ্যারে নেয় এবং আউটপুট দেয়।

([_,...a])=>a.pop()&&a

পরীক্ষার মামলা

স্ট্রিং সংস্করণ (27 বাইট)

একটি স্ট্রিং নেয় এবং আউটপুট দেয়। কোনও মাঝের নাম না পাওয়া গেলে আউটপুট স্ট্রিং হয় একটি একক স্থান, অথবা শীর্ষস্থানীয় এবং পিছনে স্থানগুলির মধ্যবর্তী নামগুলি।

s=>(/ .* /.exec(s)||' ')[0]


/./.exec.bind(/ .* /), অনুকরণমূলক # 2 বলে মনে হয় ব্যতীত nullকারো জন্য
dandavis

7

এডাব্লুকে , 17 10 বাইট

সংরক্ষিত 7 বাইট @ স্টিভকে ধন্যবাদ!

$NF=$1=x;1

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা:

$NF=    set last word to
$1=     set first word to
x       an empty variable, ie empty string
1       default action, ie print everything

11 বাইটে $NF=$1="";1
স্টিভ 15

3
বা 10 ব্যবহার করে$NF=$1=x;1
স্টিভ

1
@ কি করেন 1? আমি
এডাব্লুকে তেমন

1 এর অর্থ কেবল default 0 মুদ্রণের জন্য ডিফল্ট পদক্ষেপ গ্রহণ করুন।
স্টিভ 15

6

গ্রোভী , 19 বাইট

{it.split()[1..-2]}

ব্যাখ্যা:

{        
 it                  all closures have an implicit argument called "it"
   .split()          splits by spaces by default. Returns an array of words
           [1..-2]   take the whole array from the second index (1) to the penultimate index (-2). Implicitly return
                  }

একটি বন্ধ / বেনামে ফাংশন


1
Welcome to PPCG! Can you take a list of strings as input to skip the .split()?
Martin Ender

Martin Ender Yes, if you assume that the input will always be a list of strings then {it[1..-2]} would work.
staticmethod

5

PHP, 37 Bytes

<?=join(" ",array_slice($argv,2,-1));

-4 bytes for an output as array

print_r(array_slice($argv,2,-1));

PHP, 42 Bytes

echo trim(trim($argn,join(range("!",z))));

PHP, 50 Bytes

echo preg_filter("#(^[^\s]+ |[^\s]+$)#","",$argn);


4

Perl 5, 27 18 bytes

Need to run with -n option.

/ (.+) /&&print$1

Try it online!

Wanted to do something similar in sed first, but, unfortunately, it doesn't support non-greedy quantifier. It is needed in case middle name is more than one word.

Edit

-9 bytes thanks to Dada.

Non-greedy quantifier is not needed anymore, among with some other things.


/ (.+) /&&print$1 should be sorter. Great to see some new people golfing with Perl!
Dada

@Dada Thanks for the tip! It's actually my first time ever writing in Perl. Do you know why print if s| (.+) |\1| doesn't work? To me it looks similar to what you wrote.
Maxim Mikhaylov

print if s| (.+) |\1| replaces the middle part with... the middle part! (minus the spaces before and after), so it doesn't work. On the other side, what I suggested only matches the middle part and print only it ($1).
Dada

4

Javascript (ES6) 49 16 bytes

Edit:

a=>a.slice(1,-1)

Try it online!

ungolfed:

function(name) {
  return a.slice(1, -1); //start at the second item and end at the second to last item
};

I forgot some of the simple properties of slice, and that the input can be an array. Thanks to @Neil and @fəˈnɛtɪk I was able to remove 27 bytes. Still not really competing.

Original:

This isn't really competing but here's a Javascript solution:

a=>{a=a.split(' ');return a.slice(1, a.length-1)}

This creates an anonymous function equal to:

function(name) {
  let name = name.split(' '); //first middle last -> [first, middle, last]
  return name.slice(1, name.length - 1); //get the second item to the second to last item in the array.
}

How I golfed it

This is a pretty simple golf. I turned the function into an arrow function. Then I "minified" the code. This included renaming name into a single character(a in this case) and removing the let decloration of the variable.

Snippet

Hope this helps anyone who is stuck on the challenge.


The length - is unnecessary, as slice already accepts negative lengths as being relative to the end. This means that you no longer need the intermediate variable, so you can turn your arrow function from a block into an expression.
Neil

Actually the way it works is that -1 is the last but one that you need here.
Neil

It is also slice(1,-1). slice(1,-2) removes two from the end.
fəˈnɛtɪk

You can also assume that you were passed an array to begin with, which lets you just perform slice and you are done.
fəˈnɛtɪk

I'm 99% sure that was changed since I started it. Thanks again.
David Archibald


3

Jelly, 2 bytes

ḊṖ

Try it online!

This works as a non-inline link (i.e. function), not a full program.

'John','Jacob','Jingleheimer','Schmidt''Jacob','Jingleheimer'

As a full program, it would be 3 bytes: ḊṖK, which prints a space-separated middle name.



3

C#, 67 bytes

s=>s.Substring(s.IndexOf(' ')+1,s.LastIndexOf(' ')-s.IndexOf(' '));

Anonymous function which identifies the first occurrence of the space character and the last one and extracts the middle. It also extracts a trailing space, which can be removed at the cost of 2 bytes.

Full program with test cases:

using System;

namespace WhatsMyMiddleName
{
    class Program
    {
        static void Main(string[] args)
        {
            Func<string, string> f =
            s=>s.Substring(s.IndexOf(' ')+1,s.LastIndexOf(' ')-s.IndexOf(' '));

            Console.WriteLine(f("Jo Jean Smith"));          // "Jean"
            Console.WriteLine(f("Samantha Vee Hills"));     // "Vee"
            Console.WriteLine(f("Bob Dillinger"));          // ""
            Console.WriteLine(f("John Jacob Jingleheimer Schmidt"));// "Jacob Jingleheimer"
            Console.WriteLine(f("Jose Mario Carasco-Williams"));    // "Mario"
            Console.WriteLine(f("James Alfred Van Allen")); // "Alfred Van"
        }
    }
}



3

R, 30 27 22 bytes

Current solution due to user11599!

head(scan(,''),-1)[-1]

Takes input from stdin, returns each middle name as a separate string. Returns character() in the case of no middle name; that is, a vector of class character of length 0.

Explanation:

Read stdin into a list of strings, separated by spaces

     scan(,'')

Remove the last element. head returns the first n elements of a list, with n defaulting to 6. If n is -1 it returns all but the last element.

head(scan(,''),-1)

Now, remove the first element of this list.

head(scan(,''),-1)[-1]

This yields the middle name(s).


1
Even shorter: head(scan(,''),-1)[-1] 22 bytes. Note that '' are two single quotes.
user11599

If you don't want each name quoted, use, at 27 bytes, cat(head(scan(,''),-1)[-1])
user11599

Explanation: scan(,'') breaks the string into words, head(...,-1) drops the last word, head(...,-1)[-1] then drops the first word, cat() formats the output dropping the quotes. For no middle name, result isn't perfect, it's character(0), the empty string.
user11599

@user11599 Wow, thanks! I had played around with head() and tail(), but I didn't know you could pass a negative number as the second argument. Nice!
rturnbull

Your use of scan(,'') inspired me. I didn't think of approaching that way.
user11599

3

Ruby, 24 13 bytes

p ARGV[1..-2]

Saved 11 bytes thanks to Piccolo pointing out that array-like output is allowed.

Takes the name as separate command line arguments, e.g.:

$ ruby script.rb John Jacob Jingleheimer Schmidt

or

$ ruby -e 'p ARGV[1..-2]' John Jacob Jingleheimer Schmidt

Previous code (outputs a proper string):

puts ARGV[1..-2].join" "

@Jordan Good idea - however with $><<ARGV[1..-2].join" " it complains about the " " being unexpected, so I'd have to add parentheses - which would add 1 byte in the end.
Flambino

Ah, of course. My bad.
Jordan

The original poster said that the output can be an array, so you can shave some characters off by just changing your code to puts ARGV[1..-2], just so you know.
Piccolo

@Piccolo Huh? I don't see that anywhere? If true; p ARGV[1..-2] for 13 bytes - just looks nothing like the output in OPs challenge
Flambino


3

Golang, 152 81 bytes

import ."strings"
func f(x string)[]string{var k=Fields(x);return k[1:len(k)-1];}

It takes input as "Samantha Vee Hills" (with double quotes) and return the middle name to the stdout.

Try it Online!

Edit: @Dada, note that the "function as answer is allowed" shorten my code 71 bytes. a big thanks!


Welcome on the site. Submitting a function as answer is allowed, so you could shorten your code by doing something like this: Try it online!. Have a look at the Tips for Golfing in Go!
Dada

thank you @Dada for tips and shorten my code. It was my first code entry.
ersinakyuz

3

Matlab, 81, 79, 78, 55 Bytes

function x=a(s)
s=strsplit(s);x=strjoin(s(2:end-1));end

Takes in an input string, s, is split (by the default delimiter, whitespace char) into a cell array, from which the middle element is accessed. Then the middle elements are concatenated, or an empty string is returned.

Edit: thanks to Luis Mendo for saving 3 bytes!

Edit 2: Better solution from Ankit!


I am not a smart man! edited.
Owen Morgan

You can't use nnz on a cell array, but I did the other two changes :)
Owen Morgan

Suggested Edit by Ankit, who doesn't have enough rep to comment. (55 bytes): function x=a(s) s=strsplit(s);x=strjoin(s(2:end-1));end
mbomb007

3

C, 42 bytes

f(char**b){for(;b[2];printf("%s ",*++b));}

The parameter is a NULL terminated array of pointers to char.

See it work here.

The command line arguments may also be used with the same function.

C, 51 bytes

main(a,b)char**b;{for(;b[3];printf("%s ",b++[2]));}

A full program. Input is done through command line arguments.

See it work here.

C, 54 bytes

f(char**b){*strrchr(*b=strchr(*b,32),32)=0;*b+=!!**b;}

The parameter is an in/out parameter.

See it work here.


Welcome to PPCG!
Martin Ender

I'm receiving the following error when compiling with Visual Studio 2012:error C2100: illegal indirection
Johan du Toit

@JohanduToit VS is not C11 or even C99 conforming. My code is. As practical proof, both gcc and clang compile a valid program.
2501

2

Python 2, 42 19 16 Bytes

lambda n:n[1:-1]

Try it online! Thanks to @Kritixi Lithos for saving 23 bytes! Thanks @math_junkie for saving 3 more bytes. For input, put each part of the name as a string within a list like so:

["Samantha", "Vee", "Hills"]

And yes, the OP has approved a list to be a valid input.

Explanation

lambda n:n[1:-1]    # Returns only the middle elements... pretty literal here

1
print input()[1:-1] is shorter
Kritixi Lithos

Spring slicing sure is tricky
Anthony Pham

lambda n:n[1:-1] is even shorter
math junkie

1
I may have tried with a wrong input. But when I tried, with Samantha Vee Hills as input in repl.it link that you've shared, this just prints amantha Vee Hill which is definitely not the output required.
Keerthana Prabhakaran

2
Names will always have at least 2 space-separated parts is the first point of the question right.
Keerthana Prabhakaran

2

C++, 91 bytes

#import<list>
#import<string>
void f(std::list<std::string>&n){n.pop_front();n.pop_back();}

Takes input as a reference to a list of strings and modifies the list directly.

Try it online!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.