<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>文字列処理メニュー - IQパズルステップ</title>
	<atom:link href="https://chokomon.com/tag/string_primer/feed/" rel="self" type="application/rss+xml" />
	<link>https://chokomon.com</link>
	<description>ちょこっと頭を良くするIQパズル問題集</description>
	<lastBuildDate>Tue, 21 Jun 2022 11:00:22 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://chokomon.com/wp-content/uploads/2022/02/cropped-icon512-32x32.png</url>
	<title>文字列処理メニュー - IQパズルステップ</title>
	<link>https://chokomon.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【文字列処理メニュー】表記の訂正 (paizaランク C)-解答例-PHP編</title>
		<link>https://chokomon.com/14-string_primer-01-25-00301/</link>
					<comments>https://chokomon.com/14-string_primer-01-25-00301/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Mon, 06 Jun 2022 12:15:45 +0000</pubDate>
				<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[文字列処理メニュー]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクC]]></category>
		<category><![CDATA[難易度-1800]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=3829</guid>

					<description><![CDATA[【文字列処理メニュー】> 表記の訂正 (paizaランク C 相当) [難易度: 1885 ±19] ※リンク先へ移動するためには[paiza]へのログインが必要です。 解答例 解説 まず、受け取った値に小数点（ドット）があるか判定します。…]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/14-string_primer/">文字列処理メニュー</a>】> <a href="https://paiza.jp/works/mondai/string_primer/advance_step7" target="_blank" rel="noreferrer noopener">表記の訂正 (paizaランク C 相当)</a> [難易度: <strong>1885 ±19</strong>]



<p>※リンク先へ移動するためには[<a href="https://paiza.jp/works" target="_blank" rel="noreferrer noopener">paiza</a>]へのログインが必要です。</p>



<figure class="wp-block-image aligncenter size-full"><img fetchpriority="high" decoding="async" width="660" height="300" src="https://chokomon.com/wp-content/uploads/2022/06/14-01-25-01.png" alt="" class="wp-image-3830"/></figure>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#ccc">問題文</div><div class="sc_frame" style="background-color:#fff;border-color:#ccc">
<p>paiza 研究所では実験データをわかりやすい形式で保存したいのですが、<br>機械によって得られる数値には、次のような表記ミスがあることがわかっています。</p>



<p>・ ミス 1<br>先頭に必要のない 0 がいくつかついてしまう<br>・ 本来 1 である数値が 0001 と表記されてしまう<br>・ 本来 0.001 である数値が 00.001 と表記されてしまう</p>



<p>・ ミス 2<br>小数である数値の末尾に必要のない 0 がいくつかついてしまう<br>・ 本来 0.1 である数値が 0.10 と表記されてしまう</p>



<p>・ ミス 3<br>小数である数値に小数点が複数個ついてしまう<br>ただし、 1 つめの小数点の位置が正しい小数点の位置であるものとします<br>・ 本来 0.123 である数値が 0.1.2.3 と表記されてしまう。</p>



<p>表記が正しくない可能性のある数値を表す文字列 S が与えられるので、その数値を正しい表記にしてください。<br>S を数値として扱うと上手く処理が行えないので気をつけてください。</p>



<p></p>



<p><strong>入力値（例）</strong><br>00.00001000000</p>



<p><strong>出力値（例）</strong><br>0.00001</p>
</div></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">解答例</h2>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">&lt;?php
    $s = trim(fgets(STDIN));
    
    $dot = strpos($s, ".", 0);
    
    if($dot != FALSE) {
        $tail_trim = rtrim($s, 0);
        
        if($s[$dot - 1] == 0) {
            $zero = 0;
            echo $zero;
        }
        
        $head_trim = ltrim($tail_trim, 0);
        $len = mb_strlen($head_trim);
        $flag = 0;
        
        for($i = 0; $i &lt; $len; $i++) {
            $c = $head_trim[$i];

            if($c == ".") {
                if($flag == 0) {
                    $ans[] = $c;
                    $flag++;
                }
            
            } else {
                $ans[] = $c;
            }
        }
        //print_r($ans);
        foreach($ans as $value) {
            echo $value;
        }
        
    } else {
        echo ltrim($s, 0);
    }
?&gt;</pre></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image aligncenter size-full"><img decoding="async" width="660" height="160" src="https://chokomon.com/wp-content/uploads/2022/06/14-01-25-02.png" alt="" class="wp-image-3831"/></figure>



<h2 class="wp-block-heading">解説</h2>



<p>まず、受け取った値に小数点（ドット）があるか判定します。</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">&lt;?php
    $dot = strpos($s, ".", 0);
        
    if($dot != FALSE) {
    
    } else {
        echo ltrim($s, 0);
    }</pre></div>



<p>strpos()で小数点（ドット）があるか判定します。strpos()は指定した文字を前方から探して、はじめに現れる位置を取得します。</p>



<p>入力値が00.00001000000の場合は、2になります（先頭が0なので、0,1,2）</p>



<p class="has-gray-background-color has-background">strpos(検索対象文字列, 検察文字列 [,検索開始位置])</p>



<p></p>



<p>if()で分岐し、小数点（ドット）がなかったら、<br>ltrim()で先頭にある0を取り除きます。そのまま表示します。</p>



<p class="has-gray-background-color has-background">ltrim(文字列 [,取り除く文字])</p>



<p></p>



<p>$dot != FALSE　←　もし、小数点判定で小数点（ドット）があったら、rtrim()で末尾にある0を取り除きます。</p>



<p class="has-gray-background-color has-background">rtrim(文字列 [,取り除く文字])</p>



<p></p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">$tail_trim = rtrim($s, 0);

if($s[$dot - 1] == 0) {
            $zero = 0;
            echo $zero;
}</pre></div>



<p>そして、入力値[$dot - 1] == 0　だったとき、つまり、はじめに現れる小数点の一つ前が0だったときは、0を表示します。</p>



<p>末尾の0を取り除いた変数$tail_trimから先頭の0を取り除きます。</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">$head_trim = ltrim($tail_trim, 0);</pre></div>



<p></p>



<p>先頭の0を取り除いた$head_trimの文字数を数えておきます。</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">$len = mb_strlen($head_trim);
$flag = 0;</pre></div>



<p>for()で$head_trimの文字数だけループを回して、一文字ずつ取り出します。</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">&lt;?php
    for($i = 0; $i &lt; $len; $i++) {
        $c = $head_trim[$i];

        if($c == ".") {
            if($flag == 0) {
                $ans[] = $c;
                $flag++;
            }</pre></div>



<p>もし、取り出した文字がドット（.）だったときは、$flagをカウントします。<br>$flagが0のときは、配列の$ansに追加します。</p>



<p>文字がドットでないときは、そのまま配列$ansに追加します。</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">&lt;?php
    } else {
        $ans[] = $c;
    }</pre></div>



<p>for()ループを抜けて、foreach()で配列を一つずつ取り出して表示します。</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">&lt;?php
    foreach($ans as $value) {
        echo $value;
    }</pre></div>



<h2 class="wp-block-heading">感想</h2>



<p>どうも、力業っぽさがあるので、もう少しスマートなコードにならないかなと考察中です。(*'ω'*)もっとキレイな解答がありましたらぜひ教えてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/14-string_primer-01-25-00301/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【文字列処理メニュー】巨大な数のかけ算 (paizaランク C)-解答例-PHP編</title>
		<link>https://chokomon.com/14-string_primer-01-30-00300/</link>
					<comments>https://chokomon.com/14-string_primer-01-30-00300/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Mon, 06 Jun 2022 06:12:23 +0000</pubDate>
				<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[文字列処理メニュー]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクC]]></category>
		<category><![CDATA[難易度-1400]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=3824</guid>

					<description><![CDATA[【文字列処理メニュー】> 巨大な数のかけ算 (paizaランク C 相当) [難易度: 1465 ±15] ※リンク先へ移動するためには[paiza]へのログインが必要です。 解答例]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/14-string_primer/">文字列処理メニュー</a>】> <a href="https://paiza.jp/works/mondai/string_primer/advance_step12" target="_blank" rel="noreferrer noopener">巨大な数のかけ算 (paizaランク C 相当)</a> [難易度: <strong>1465 ±15</strong>]



<p>※リンク先へ移動するためには[<a href="https://paiza.jp/works" target="_blank" rel="noreferrer noopener">paiza</a>]へのログインが必要です。</p>



<figure class="wp-block-image aligncenter size-full"><img decoding="async" width="660" height="300" src="https://chokomon.com/wp-content/uploads/2022/06/14-01-30-01.png" alt="" class="wp-image-3825"/></figure>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#ccc">問題文</div><div class="sc_frame" style="background-color:#fff;border-color:#ccc">
<p>数値を表す文字列 S と 1 桁の数値 T が与えられるので、S * T の結果を表す文字列を出力してください。</p>



<p></p>



<p><strong>入力値（例）</strong><br>987654321<br>9</p>



<p><strong>出力値（例）</strong><br>8888888889</p>
</div></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">解答例</h2>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">&lt;?php
    $s = trim(fgets(STDIN));
    $t = trim(fgets(STDIN));
    
    $len = mb_strlen($s);
    $x = 0;
    
    for($i = 0; $i &lt; $len; $i++) {
        $c = $s[$len - 1 - $i] * $t + $x;
        
        if(mb_strlen($c) == 2) {
            $x = substr($c, 0, 1);
            $ans[] = substr($c, 1, 1);
            
        } else {
            $ans[] = $c;
            $x = 0;
        }
    }
    if($x != 0) {
        $ans[] = $x;
    }

    $rev_ans = array_reverse($ans);
    
    if($t == 0) {
        echo $t;
    } else {
        foreach($rev_ans as $value) {
            echo $value;
        }
    }
?&gt;</pre></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="160" src="https://chokomon.com/wp-content/uploads/2022/06/14-01-30-02.png" alt="" class="wp-image-3826"/></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/14-string_primer-01-30-00300/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【文字列処理メニュー】巨大な数の足し算 (paizaランク C)-解答例-PHP編</title>
		<link>https://chokomon.com/14-string_primer-01-29-00296/</link>
					<comments>https://chokomon.com/14-string_primer-01-29-00296/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Sun, 05 Jun 2022 15:37:44 +0000</pubDate>
				<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[文字列処理メニュー]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクC]]></category>
		<category><![CDATA[難易度-1300]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=3804</guid>

					<description><![CDATA[【文字列処理メニュー】> 巨大な数の足し算 (paizaランク C 相当) [難易度: 1384 ±16] ※リンク先へ移動するためには[paiza]へのログインが必要です。 解答例]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/14-string_primer/">文字列処理メニュー</a>】> <a href="https://paiza.jp/works/mondai/string_primer/advance_step11" target="_blank" rel="noreferrer noopener">巨大な数の足し算 (paizaランク C 相当)</a> [難易度: <strong>1384 ±16</strong>]



<p>※リンク先へ移動するためには[<a href="https://paiza.jp/works" target="_blank" rel="noreferrer noopener">paiza</a>]へのログインが必要です。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="300" src="https://chokomon.com/wp-content/uploads/2022/06/14-01-29-01.png" alt="" class="wp-image-3805"/></figure>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#ccc">問題文</div><div class="sc_frame" style="background-color:#fff;border-color:#ccc">
<p>数値を表す文字列 S , T が与えられるので、S + T の結果を表す文字列を出力してください。繰り上がりが発生する可能性があるので注意してください。</p>



<p></p>



<p><strong>入力値（例）</strong><br>1029384756<br>1029384756</p>



<p><strong>出力値（例）</strong><br>2058769512</p>
</div></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">解答例</h2>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">&lt;?php
    $s = trim(fgets(STDIN));
    $t = trim(fgets(STDIN));
    
    $len = mb_strlen($s);
    $x = 0;
    
    for($i = 0; $i &lt; $len; $i++) {
        $c = $s[$len - 1 - $i] + $t[$len - 1 - $i] + $x;
        
        if(mb_strlen($c) == 2) {
            $x = substr($c, 0, 1);
            $ans[] = substr($c, 1, 1);
            
        } else {
            $ans[] = $c;
            $x = 0;
        }
    }
    
    if($x == 1){
        $ans[] = $x;
    }
    
    $rev_ans = array_reverse($ans);
    
    foreach($rev_ans as $value) {
        echo $value;
    }
?&gt;</pre></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="160" src="https://chokomon.com/wp-content/uploads/2022/06/14-01-29-02.png" alt="" class="wp-image-3806"/></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/14-string_primer-01-29-00296/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【文字列処理メニュー】巨大な数の足し算(繰り上がりなし) (paizaランク C)-解答例-PHP編</title>
		<link>https://chokomon.com/14-string_primer-01-28-00295/</link>
					<comments>https://chokomon.com/14-string_primer-01-28-00295/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Sun, 05 Jun 2022 12:31:34 +0000</pubDate>
				<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[文字列処理メニュー]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクC]]></category>
		<category><![CDATA[難易度-1200]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=3799</guid>

					<description><![CDATA[【文字列処理メニュー】> 巨大な数の足し算(繰り上がりなし) (paizaランク C 相当) [難易度: 1247 ±17] ※リンク先へ移動するためには[paiza]へのログインが必要です。 解答例]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/14-string_primer/">文字列処理メニュー</a>】> <a href="https://paiza.jp/works/mondai/string_primer/advance_step10" target="_blank" rel="noreferrer noopener">巨大な数の足し算(繰り上がりなし) (paizaランク C 相当)</a> [難易度: <strong>1247 ±17</strong>]



<p>※リンク先へ移動するためには[<a href="https://paiza.jp/works" target="_blank" rel="noreferrer noopener">paiza</a>]へのログインが必要です。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="300" src="https://chokomon.com/wp-content/uploads/2022/06/14-01-28-01.png" alt="" class="wp-image-3800"/></figure>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#ccc">問題文</div><div class="sc_frame" style="background-color:#fff;border-color:#ccc">
<p>数値を表す文字列 S , T が与えられるので、S + T の結果を表す文字列を出力してください。<br>なお、 S + T では、 足し算をしたときに全ての桁において繰り上がりが発生しないことが保証されているものとします。</p>



<p></p>



<p><strong>入力値（例）</strong><br>123456789<br>876543210</p>



<p><strong>出力値（例）</strong><br>999999999</p>
</div></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">解答例</h2>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">&lt;?php
    $s = trim(fgets(STDIN));
    $t = trim(fgets(STDIN));
    
    $len = mb_strlen($s);
    
    for($i = 0; $i &lt; $len; $i++) {
        $c = $s[$i] + $t[$i];
        echo $c;
    }
?&gt;</pre></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="160" src="https://chokomon.com/wp-content/uploads/2022/06/14-01-28-02.png" alt="" class="wp-image-3801"/></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/14-string_primer-01-28-00295/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【文字列処理メニュー】数式の計算 (paizaランク C)-解答例-PHP編</title>
		<link>https://chokomon.com/14-string_primer-01-27-00293/</link>
					<comments>https://chokomon.com/14-string_primer-01-27-00293/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Sun, 05 Jun 2022 04:15:14 +0000</pubDate>
				<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[文字列処理メニュー]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクC]]></category>
		<category><![CDATA[難易度-1400]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=3786</guid>

					<description><![CDATA[【文字列処理メニュー】> 数式の計算 (paizaランク C 相当) [難易度: 1486 ±15] ※リンク先へ移動するためには[paiza]へのログインが必要です。 解答例]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/14-string_primer/">文字列処理メニュー</a>】> <a href="https://paiza.jp/works/mondai/string_primer/advance_step9" target="_blank" rel="noreferrer noopener">数式の計算 (paizaランク C 相当)</a> [難易度: <strong>1486 ±15</strong>]



<p>※リンク先へ移動するためには[<a rel="noreferrer noopener" href="https://paiza.jp/works" target="_blank">paiza</a>]へのログインが必要です。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="300" src="https://chokomon.com/wp-content/uploads/2022/06/14-01-27-01.png" alt="" class="wp-image-3788"/></figure>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#ccc">問題文</div><div class="sc_frame" style="background-color:#fff;border-color:#ccc">
<p>正しい数式を表す文字列 S が与えられるので、その数式を計算した結果を出力してください。ただし、出てくる計算は足し算・引き算のみとします。</p>



<p>・ 例<br>・ S = "1+1"<br>答えは 2 となります。</p>



<p>・ S = "4+3-2+1"<br>答えは 6 となります。</p>



<p></p>



<p><strong>入力値（例）</strong><br>123+456+789</p>



<p><strong>出力値（例）</strong><br>1368</p>
</div></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">解答例</h2>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">&lt;?php
    $str = trim(fgets(STDIN));
    
    $num = preg_split('/[+\-]/', $str);
    
    //print_r($num);
    
    $len = mb_strlen($str);
    
    $ans = $num[0];
    $x = 1;
    
    for($i = 0; $i &lt; $len; $i++) {
        $n = $str[$i];

        if($n == "+") {
            $ans += $num[$x];
            $x++;
        }
        if($n == "-") {
            $ans -= $num[$x];
            $x++;
        }
    }
    echo $ans;
?&gt;</pre></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="160" src="https://chokomon.com/wp-content/uploads/2022/06/14-01-27-02.png" alt="" class="wp-image-3789"/></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/14-string_primer-01-27-00293/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【文字列処理メニュー】数式の計算（ 1 桁） (paizaランク C)-解答例-PHP編</title>
		<link>https://chokomon.com/14-string_primer-01-26-00252/</link>
					<comments>https://chokomon.com/14-string_primer-01-26-00252/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Mon, 23 May 2022 10:52:21 +0000</pubDate>
				<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[文字列処理メニュー]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクC]]></category>
		<category><![CDATA[難易度-1400]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=3526</guid>

					<description><![CDATA[【文字列処理メニュー】> 数式の計算（ 1 桁） (paizaランク C 相当) [難易度: 1425 ±15] ※リンク先へ移動するためには[paiza]へのログインが必要です。 解答例]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/14-string_primer/">文字列処理メニュー</a>】> <a href="https://paiza.jp/works/mondai/string_primer/advance_step8" target="_blank" rel="noreferrer noopener">数式の計算（ 1 桁） (paizaランク C 相当)</a> [難易度: <strong>1425 ±15</strong>]



<p>※リンク先へ移動するためには[<a href="https://paiza.jp/works" target="_blank" rel="noreferrer noopener">paiza</a>]へのログインが必要です。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="300" src="https://chokomon.com/wp-content/uploads/2022/05/14-01-26-01.png" alt="" class="wp-image-3527"/></figure>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#ccc">問題文</div><div class="sc_frame" style="background-color:#fff;border-color:#ccc">
<p>正しい数式を表す文字列 S が与えられるので、その数式を計算した結果を出力してください。<br>ただし、出てくる計算は足し算・引き算のみとし、数式に出てくる数字は全て 1 桁であるものとします。</p>



<p>・ 例<br>・ S = "1+1"<br>答えは 2 となります。</p>



<p>・ S = "4+3-2+1"<br>答えは 6 となります。</p>



<p></p>



<p><strong>入力値（例）</strong><br>1+2+3</p>



<p><strong>出力値（例）</strong><br>6</p>
</div></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">解答例</h2>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">&lt;?php
    $s = trim(fgets(STDIN));
    $ans = $s[0];
    $n = mb_strlen($s);
    for($i = 0; $i &lt; $n; $i++) {
        if($s[$i] == "+") {
            $ans += $s[$i + 1];
        } elseif($s[$i] == "-") {
            $ans -= $s[$i + 1];
        }
    }
    echo $ans;
?&gt;</pre></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="160" src="https://chokomon.com/wp-content/uploads/2022/05/14-01-26-02.png" alt="" class="wp-image-3528"/></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/14-string_primer-01-26-00252/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【文字列処理メニュー】パスワード作成 (paizaランク C)-解答例-PHP編</title>
		<link>https://chokomon.com/14-string_primer-01-24-00149/</link>
					<comments>https://chokomon.com/14-string_primer-01-24-00149/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Mon, 11 Apr 2022 12:05:38 +0000</pubDate>
				<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[文字列処理メニュー]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクC]]></category>
		<category><![CDATA[難易度-1400]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=2203</guid>

					<description><![CDATA[【文字列処理メニュー】> パスワード作成 (paizaランク C 相当) [難易度: 1462 ±14] ※リンク先へ移動するためには[paiza]へのログインが必要です。 解答例 感想 連想配列を作って、そこからkeyが空だった場合が分か…]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/14-string_primer/">文字列処理メニュー</a>】> <a href="https://paiza.jp/works/mondai/string_primer/advance_step6" target="_blank" rel="noreferrer noopener">パスワード作成 (paizaランク C 相当)</a> [難易度: <strong>1462 ±14</strong>]



<p>※リンク先へ移動するためには[<a href="https://paiza.jp/works" target="_blank" rel="noreferrer noopener">paiza</a>]へのログインが必要です。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="300" src="https://chokomon.com/wp-content/uploads/2022/04/14-01-24-01.png" alt="" class="wp-image-2204"/></figure>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#ccc">問題文</div><div class="sc_frame" style="background-color:#fff;border-color:#ccc">
<p>K さんは paiza のアカウントを作成することにしました。そのためには、パスワードの設定が必要なことがわかりました。<br>そこで K さんは忘れないように、次のようなルールにのっとって N 文字のパスワードを設定することにしました。</p>



<p>・ ルール<br>K さんは N 文字のうち、 Q 文字だけ覚えておく文字を決めておく。<br>具体的には n_i 文字目を c_i とだけ決めて、残りの全ての文字を C にする。</p>



<p>K さんの設定したパスワードを当ててください。</p>



<p>例<br>・ N = 5 , Q = 1 , n_1 = 2 , c_1 = 'T' , C = 'K' のとき<br>パスワードは 5 文字であり、 2 文字目が 'T' , それ以外の文字を 'K' としたものである "KTKKK" が K さんのパスワードとなる。</p>



<p></p>



<p><strong>入力値（例）</strong><br>5<br>1<br>2 T<br>K</p>



<p><strong>出力値（例）</strong><br>KTKKK</p>
</div></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">解答例</h2>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">&lt;?php
$n = trim(fgets(STDIN));
$q = trim(fgets(STDIN));

for($i = 0; $i &lt; $q; $i++) {
    $key_value = explode(" ", trim(fgets(STDIN)));
    $key = $key_value[0];
    $value = $key_value[1];
    $number[$key-1] = $value;
}

$k = trim(fgets(STDIN));

for($j = 0; $j &lt; $n; $j++) {
    $flag = isset($number[$j]);
    if($flag == true) {
        echo $number[$j];
    } else {
        echo $k;
    }
}
?&gt;</pre></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="160" src="https://chokomon.com/wp-content/uploads/2022/04/14-01-24-02.png" alt="" class="wp-image-2205"/></figure>



<h2 class="wp-block-heading">感想</h2>



<p>連想配列を作って、そこからkeyが空だった場合が分からなくて試行錯誤しました。ここでは、isset()を使って$flagに入れています。$flagがtrueのとき連想配列のvalueを表示するようにしました。難しかったです。(*'ω'*)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/14-string_primer-01-24-00149/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【文字列処理メニュー】重複の削除 (paizaランク C)-解答例-PHP編</title>
		<link>https://chokomon.com/14-string_primer-01-23-00148/</link>
					<comments>https://chokomon.com/14-string_primer-01-23-00148/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Sun, 10 Apr 2022 05:08:39 +0000</pubDate>
				<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[文字列処理メニュー]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクC]]></category>
		<category><![CDATA[難易度-1400]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=2117</guid>

					<description><![CDATA[【文字列処理メニュー】> 重複の削除 (paizaランク C 相当) [難易度: 1405 ±13] ※リンク先へ移動するためには[paiza]へのログインが必要です。 解答例 メモ array_unique()は、配列の重複を削除する関数…]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/14-string_primer/">文字列処理メニュー</a>】> <a href="https://paiza.jp/works/mondai/string_primer/advance_step5" target="_blank" rel="noreferrer noopener">重複の削除 (paizaランク C 相当)</a> [難易度: <strong>1405 ±13</strong>]



<p>※リンク先へ移動するためには[<a href="https://paiza.jp/works" target="_blank" rel="noreferrer noopener">paiza</a>]へのログインが必要です。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="300" src="https://chokomon.com/wp-content/uploads/2022/04/14-01-23-01.png" alt="" class="wp-image-2118"/></figure>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#ccc">問題文</div><div class="sc_frame" style="background-color:#fff;border-color:#ccc">
<p>数字を表す文字列 S が与えられるので、 S の先頭（左側）から S を見て行ったときにその数字が現れたのが 2 回目以降の場合、その数字を削除した文字列（重複した数字を削除した文字列）を求めてください。</p>



<p>例<br>・ S = "1234567890" のとき<br>数字に重複はないので "1234567890" が答えとなります。</p>



<p>・ S = "112123123412345" のとき<br>"12345" が答えとなります。<br>・ 1 は 1 文字目に初めて現れるので、それ以降の 1 は読み飛ばします。<br>・ 2 は 3 文字目に初めて現れ、それ以降の 2 は読み飛ばします。<br>・ 3 は 6 文字目に初めて現れ、それ以降の 3 は読み飛ばします。<br>・ 4 は 10 文字目に初めて現れ、それ以降の 4 は読み飛ばします。<br>・ 5 は 15 文字目に初めて現れ、それ以降の 5 は読み飛ばします。</p>



<p></p>



<p><strong>入力値（例）</strong><br>1234567890</p>



<p><strong>出力値（例）</strong><br>1234567890</p>
</div></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">解答例</h2>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">&lt;?php
    $input = trim(fgets(STDIN));

    $len = mb_strlen($input);

    for($i = 0; $i &lt; $len; $i++) {
        $number[] = substr($input, $i, 1);
    }
    
    $num_unique = array_unique($number);
    foreach($num_unique as $value) {
        echo $value;
    }
?&gt;</pre></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="160" src="https://chokomon.com/wp-content/uploads/2022/04/14-01-23-02.png" alt="" class="wp-image-2119"/></figure>



<h2 class="wp-block-heading">メモ</h2>



<p>array_unique()は、配列の重複を削除する関数です。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/14-string_primer-01-23-00148/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【文字列処理メニュー】数値判定 (paizaランク C)-解答例-PHP編</title>
		<link>https://chokomon.com/14-string_primer-01-22-00147/</link>
					<comments>https://chokomon.com/14-string_primer-01-22-00147/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Sat, 09 Apr 2022 15:19:45 +0000</pubDate>
				<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[文字列処理メニュー]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクC]]></category>
		<category><![CDATA[難易度-1400]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=2107</guid>

					<description><![CDATA[【文字列処理メニュー】> 数値判定 (paizaランク C 相当) [難易度: 1421 ±13] ※リンク先へ移動するためには[paiza]へのログインが必要です。 解答例]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/14-string_primer/">文字列処理メニュー</a>】> <a href="https://paiza.jp/works/mondai/string_primer/advance_step4" target="_blank" rel="noreferrer noopener">数値判定 (paizaランク C 相当)</a> [難易度: <strong>1421 ±13</strong>]



<p>※リンク先へ移動するためには[<a href="https://paiza.jp/works" target="_blank" rel="noreferrer noopener">paiza</a>]へのログインが必要です。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="300" src="https://chokomon.com/wp-content/uploads/2022/04/14-01-22-01.png" alt="" class="wp-image-2108"/></figure>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#ccc">問題文</div><div class="sc_frame" style="background-color:#fff;border-color:#ccc">
<p>文字列 S が与えられるので、 S を整数に変換できる場合には "YES" , そうでない場合は "NO" を出力してください。</p>



<p>なお、文字列 S を数値に変換できるとは、S の全ての文字が<br>{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } のいずれかであることをいいます。</p>



<p></p>



<p><strong>入力値（例）<br></strong>813</p>



<p><strong>出力値（例）</strong><br>YES</p>
</div></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">解答例</h2>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">&lt;?php
    $s = trim(fgets(STDIN));
    if(is_numeric($s)) {
        echo "YES";
    } else {
        echo "NO";
    }
?&gt;</pre></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="160" src="https://chokomon.com/wp-content/uploads/2022/04/14-01-22-02.png" alt="" class="wp-image-2125"/></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/14-string_primer-01-22-00147/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【文字列処理メニュー】日時データの変換その２ (paizaランク C)-解答例-PHP編</title>
		<link>https://chokomon.com/14-string_primer-01-21-00146/</link>
					<comments>https://chokomon.com/14-string_primer-01-21-00146/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Sat, 09 Apr 2022 07:13:41 +0000</pubDate>
				<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[文字列処理メニュー]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクC]]></category>
		<category><![CDATA[難易度-900]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=2063</guid>

					<description><![CDATA[【文字列処理メニュー】> 日時データの変換その２ (paizaランク C 相当) [難易度: 977 ±18] ※リンク先へ移動するためには[paiza]へのログインが必要です。 解答例]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/14-string_primer/">文字列処理メニュー</a>】> <a href="https://paiza.jp/works/mondai/string_primer/advance_step3" target="_blank" rel="noreferrer noopener">日時データの変換その２ (paizaランク C 相当)</a> [難易度: <strong>977 ±18</strong>]



<p>※リンク先へ移動するためには[<a href="https://paiza.jp/works" target="_blank" rel="noreferrer noopener">paiza</a>]へのログインが必要です。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="300" src="https://chokomon.com/wp-content/uploads/2022/04/14-01-21-01.png" alt="" class="wp-image-2064"/></figure>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#ccc">問題文</div><div class="sc_frame" style="background-color:#fff;border-color:#ccc">
<p>日時が "yyyy/MM/dd hh:mm" の形式で与えられるので、年・月・日・時・分をそれぞれ出力してください。</p>



<p></p>



<p><strong>入力値（例）</strong><br>1212/12/12 12:12</p>



<p><strong>出力値（例）</strong><br>1212<br>12<br>12<br>12<br>12</p>
</div></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">解答例</h2>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">&lt;?php
    $date = trim(fgets(STDIN));
    $place1 = str_replace(":", "/", $date);
    $place2 = str_replace(" ", "/", $place1);
    $place3 = explode("/", $place2);
    foreach($place3 as $value) {
        echo $value. "\n";
    }
?&gt;</pre></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="240" src="https://chokomon.com/wp-content/uploads/2022/04/14-01-21-02.png" alt="" class="wp-image-2065"/></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/14-string_primer-01-21-00146/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
